來自我的第一個問題,希望它的措辭正確。我找不到任何東西,所以我會咬緊牙關。覆蓋ggplot2中的多個geom_tile圖
我想創建一個geom_tile
曲線,其爲x
和y
每個組合,我對z
5個變量的所有總和爲1。我想每個x-y
組合的平方的顏色反映哪個z
數字是最大的。例如,假設我有變量a
,b
,c
,d
和e
。如果a=1
和b=c=d=e=0
,正方形將是藍色的,如果b=1
和a=c=d=e=0
它將是紅色等。如果a=b=0.5
和其他爲零,則它將是內插顏色(即紫色)。也許更好,紅色和藍色交叉線,但我不知道這是否可能在ggplot
。
我不知道如何繼續前進。我想過繪製彼此之間的圖,其中每一個圖都是不同的顏色,並且alpha通過例如縮放圖來縮放。 a的值(因此當a = 0
時單元格是透明的,當a = 1
時單元格是強烈着色的)。也許還有一種方法可以用顏色漸變來實現,但我也在那裏畫了一個空白。
如果任何人都能看到如何做到這一點他們的頭頂,我會非常感激。這是一個與我的實際數據格式相同的隨機數據集。
rand <- matrix(runif(50*50*5), ncol=5, nrow=50*50)
rand <- rand/apply(rand, 1, sum) # Make sure the numbers sum to one in each row
d <- data.frame(a = rand[,1],
b = rand[,2],
c = rand[,3],
d = rand[,4],
e = rand[,5],
expand.grid(x = 1:50, y = 1:50))
更新:通過使用從sebastian-c和我自己的數據集的第一個答案,我能夠使這個數字。我使用RColorBrewer包中的函數brewer.pal(5,「Spectral」)獲得顏色。需要一個自定義的傳說,但除此之外,我對它很滿意。純色顯示純粹的「進化穩定策略」(ESS;即不能被突變策略打敗的策略)。重疊顏色區域顯示混合ESS,其中均衡是兩個或更多策略的穩定平衡。
所以我們假設你有四種顏色:紅色,藍色,綠色和紫色。你如何區分紫色和紅色的組合? –
@ sebastian-c,我同意這是這種方法的一個主要問題:必須將5維矢量投影到3d色彩空間上。此外,連續的3D色彩空間不具備良好的感知品質。這樣一個數字可能看起來很混亂或混亂(取決於數據...) – bdemarest
@bdemarest - 對於這個示例數據集,你是完全正確的。但在實際的數據中,有大塊純色,並且它們之間有重疊區域,所以清楚發生了什麼。我只是不確定如何鏈接到我在這個網站上的數據,而重現它的代碼需要幾個小時才能運行,所以我認爲使用隨機數來表示概念證明會很好。 – lukeholman