我有我想正確着色的最小和最大溫度數據。使用ggplot2在R中對兩條線使用一條色標
的數據看起來像這樣
MESS_DATUM LUFTTEMPERATUR_MAXIMUM LUFTTEMPERATUR_MINIMUM
20050719 22.1 16.5
20050720 22.8 12.8
20050721 22.6 12.0
20050722 19.1 13.8
20050723 21.9 12.8
20050724 24.8 11.4
20050725 25.8 16.9
20050726 24.7 16.3
20050727 31.6 17.0
20050728 34.5 19.2
20050729 27.3 18.2
20050730 25.5 13.4
20050731 24.5 11.5
20050801 24.4 12.5
20050802 22.1 14.6
20050803 24.9 15.2
20050804 23.4 11.3
20050805 23.4 9.1
20050806 21.0 12.0
20050807 19.2 9.8
20050808 19.2 10.8
20050809 21.0 11.2
20050810 20.2 10.2
這兩行得到單獨的顏色光譜,但我想用兩行相同的頻譜。這是我用於此的代碼。
p2<-ggplot(dataByYear) +
geom_line(aes(x = MESS_DATUM,y = LUFTTEMPERATUR_MINIMUM, colour = LUFTTEMPERATUR_MINIMUM)) +
geom_smooth(aes(x = MESS_DATUM,y = LUFTTEMPERATUR_MINIMUM), color = "blue",size = 0.5) +
geom_line(aes(x = MESS_DATUM,y = LUFTTEMPERATUR_MAXIMUM, colour = LUFTTEMPERATUR_MINIMUM)) +
geom_smooth(aes(x = MESS_DATUM,y = LUFTTEMPERATUR_MAXIMUM), color = "red",size = 1) +
scale_colour_gradient2(low = "blue", mid = "green" , high = "red", midpoint = 10) +
scale_y_continuous(limits = c(-10,40), breaks = seq(-10,40,5)) +
ggtitle ("Daily average temperature") +
xlab("Date") + ylab ("Average Temperature (ºC)")
它看起來像這樣
正如你所看到的顏色是不是一定溫度獨一無二的。對於大於15°C的數值,它可以在底部顯示爲紅色,但對於頂部線上的相同溫度,它仍然爲綠色。
我想要一條用於兩條線的色階。 有沒有人有一個想法如何做到這一點?
在此先感謝。
這只是胡亂猜測,但也許問題是使用兩個geom_line電話。你的'dataByYear'的結構是什麼?一些數據重塑應該允許您使用一個geom_line調用。 – zelite
也許,但我想保留兩條線,因爲它們是獨立的數據。 –
你能否解釋一下數據如何重構? –