這與另一個問題有關:Plot weighted frequency matrix。帶有不同大小的分箱的繪圖概率熱圖/六進制組
我有這樣的圖形(由下面R中的代碼。生產):
#Set the number of bets and number of trials and % lines
numbet <- 36
numtri <- 1000
#Fill a matrix where the rows are the cumulative bets and the columns are the trials
xcum <- matrix(NA, nrow=numbet, ncol=numtri)
for (i in 1:numtri) {
x <- sample(c(0,1), numbet, prob=c(5/6,1/6), replace = TRUE)
xcum[,i] <- cumsum(x)/(1:numbet)
}
#Plot the trials as transparent lines so you can see the build up
matplot(xcum, type="l", xlab="Number of Trials", ylab="Relative Frequency", main="", col=rgb(0.01, 0.01, 0.01, 0.02), las=1)
我非常喜歡這個情節建立並示出了更頻繁的路徑作爲除罕見路徑較暗的方式(但對於印刷介紹還不夠清楚)。我想要做的是爲數字生成某種hexbin或heatmap。在考慮這件事,似乎情節將有包括不同大小的垃圾箱(見我的信封素描的背面):
我那麼問題:如果我使用的代碼模擬萬元運行以上,我如何將它作爲熱圖或六邊形顯示,如草圖中所示的不同大小的容器?
澄清:我不想依賴透明度來顯示通過一部分情節的審判的稀有性。相反,我想用熱量表示稀有度,並顯示出一條常見的路徑爲熱(紅色)和一條罕見路徑爲冷(藍色)。另外,我認爲垃圾箱的尺寸不應該是相同的,因爲第一個試驗只有兩個地方,路徑可以是,但最後有更多。因此,我根據這個事實選擇了一個不斷變化的箱秤。 本質上,我正在計算路徑通過單元格的次數(第1列中的第2列,第2列中的第3列),然後根據它通過的次數對單元格着色。
更新:我已經有一個類似@Andrie的情節,但我不確定它比頂部情節清晰得多。這是該圖的不連續性,我不喜歡(以及爲什麼我需要某種熱圖)。我認爲,因爲第一列只有兩個可能的值,它們之間不應該有很大的視覺差距等。因此,我爲什麼設想不同大小的箱子。我仍然認爲分檔版本會更好地顯示大量樣本。
更新:這website概括一個過程來繪製熱圖:
要創建這樣的密度(熱圖)圖版本中,我們必須在每個有效地列舉這些問題的發生圖像中的離散位置。這是通過設置網格並計算點座標「落入」網格中每個位置的每個單獨像素「分箱」的次數來完成的。
也許該網站上的一些信息可以與我們已經有的信息相結合?
更新:我花了一些什麼Andrie其中的某些question的,寫信給在此到達,這是相當接近了我的設想:
numbet <- 20
numtri <- 100
prob=1/6
#Fill a matrix
xcum <- matrix(NA, nrow=numtri, ncol=numbet+1)
for (i in 1:numtri) {
x <- sample(c(0,1), numbet, prob=c(prob, 1-prob), replace = TRUE)
xcum[i, ] <- c(i, cumsum(x)/cumsum(1:numbet))
}
colnames(xcum) <- c("trial", paste("bet", 1:numbet, sep=""))
mxcum <- reshape(data.frame(xcum), varying=1+1:numbet,
idvar="trial", v.names="outcome", direction="long", timevar="bet")
#from the other question
require(MASS)
dens <- kde2d(mxcum$bet, mxcum$outcome)
filled.contour(dens)
我不太明白什麼是繼續,但這似乎更像我想要生產的(顯然沒有不同大小的垃圾桶)。
更新:這與其他地塊類似。這是不完全正確:
plot(hexbin(x=mxcum$bet, y=mxcum$outcome))
最後一次嘗試。如上:
image(mxcum$bet, mxcum$outcome)
這是相當不錯的。我只想讓它看起來像我的手繪草圖。
所以,你的圖形中,將在右上是全藍褪色成紅色的自下而上左,右下? –
@Brandon本質上是的。我剛剛嘗試過一個模擬,但我不是藝術家(也不是數學家)。我會盡力展示我想要的。 –
你的問題看起來不錯:) – polerto