2011-11-17 79 views
6

我需要創建自定義熱圖,如附圖所示。它與傳統的熱圖不同,我希望它使用兩種顏色漸變,一種是正值,一種是負值。R中的自定義熱圖

enter image description here

如在所附的圖中所示,我想一種顏色來描繪是正的(或理想地高於某個閾值)的值和另一種顏色的強度,以描繪的值的強度即是負數(或低於閾值)。有一點背景:我有一個二元選擇集,其中一個選項對於某個數據範圍是首選,而另一個對於其餘數據是首選。我想提供一種視覺輔助,它將描述哪種選擇/選擇對於不同的數據組合更好,但是我希望視覺輔助也能提供一種選擇在這種情況下比另一種選擇具有的「更好」的規模。所以顏色會告訴我們應該選擇哪個選項,而顏色的強度則告訴我們該選項與其他選項相比有多好。

+0

這就是所謂發散調色板,並有很多人在RColorBrewer包。只要它正確地居中於0,那麼這是正確的做法。 – Spacedman

回答

9

這裏是使用ggplot2一個例子:

# sample data 
df <- data.frame(expand.grid(x = 1:4, y = 1:4), v = runif(16, -10, 10)) 

# plot 
ggplot(df, aes(x, y, fill = v, label = sprintf("%.1f", v))) + 
    geom_tile() + geom_text() + 
    scale_fill_gradient2(low = "blue", high = "red") 

enter image description here

+0

謝謝,這個工程。 – Arjun

+0

這是一個非常優秀且有用的代碼,謝謝! – mfk534