我想弄清楚如何在R中創建一個函數,當繪圖時我可以用它來設置柵格中單元格的顏色。最終,我會用繪製的柵格創建這些圖的.gif(我已經有了這部分),但是顏色需要保持一致的繪圖。即在一個繪圖中分配給值1的顏色需要與下一個繪圖中分配給值1的顏色相同。爲光柵分配顏色的功能
柵格是(至少現在)以數據框的形式。例如(我只是使用隨機數的例子的緣故,但是這是我的真實數據的格式化)
A<-data.frame(x=1:100,y=1:100,value=runif(100, 0, 10000))
B<-data.frame(x=1:100,y=1:100,value=runif(100, 5, 5300))
C<-data.frame(x=1:100,y=1:100,value=runif(100, 8500, 12000))
現在我想要分配顏色到一些範圍的值,如1-100,101-200等,這樣1-100將被繪製爲白色,然後101-200如藍色等等。理想情況下,一些顏色從冷色調變爲熱色。請注意,A,B和C中的值範圍都不相同。那是我的我需要一個單一的功能,我可以運行每個數據框,將產生相同的顏色相同的值範圍。
現在如果我描繪出這些3個數據幀
library(ggplot2)
ggplot() + geom_tile(data=A, aes(x=x, y=y, fill=value)) + scale_fill_gradient(low="blue", high="red")
ggplot() + geom_tile(data=B, aes(x=x, y=y, fill=value)) + scale_fill_gradient(low="blue", high="red")
ggplot() + geom_tile(data=C, aes(x=x, y=y, fill=value)) + scale_fill_gradient(low="blue", high="red")
的顏色範圍保持不變,但是值的範圍沒有。我需要一個函數,可以在A,B和C上運行並獲得相同的「每個值的顏色」或「每個值的範圍」
謝謝!
如果必要的場所你可以設置色階的限制,和/或,'scale_fill_gradient(低= 「藍色」,高= 「紅」,LIM = C(0,2e4))' – baptiste