[英]Adding legend to multiple regression plot
我正在嘗試繪制4個回歸,它們都具有相同的預測變量,並具有4種不同顏色的對應點。 我需要為4種顏色分配4個標簽的圖例。 僅僅是一個包含2列的簡單表。 但是,當嘗試使用scale_linetype_manualor或scale_fill_manual設置手冊時,不會出現圖例。
Forest_EPs_pure <- data.frame("Sand"=c(23,41,32,34,38,49,32,18,91,18,117,61,68,43,46,59,74,88,58,92,882,941,870,926,861,848,810,964,874,860,755,942),
"B2_fs"=c(61,68,80,20,43,72,93,60,75,75,97,83,74,51,87.5,74,97,74,71,60,0,0,0,0,0,0,17,0,0,0,0,0),
"H_total"=c(89.7,109.6,15.4,140.1,145.4,164,11.6,118.1,110.8,50.4,77.8,124.6,115.6,152,63.6,112.9,127.7,138.5,69.8,149.4,32,63.4,35.7,84.5,5.8,0,8.8,1.6,20.2,31.8,25.8,0.5),
"B1_fs"=c(0,0,0.5,0,0.5,0,3,0,0,0.5,2,10,0,0,7,0,0,20,15,18,75,71,115,72,65,95,40,35,43,96,98,95),
"S_total"=c(8.6,8.5,2.2,18.9,37.9,53.1,3.8,76,67.4,4.8,35.2,78,74.5,65.6,41.6,58,37.1,60.7,68,39.5,44.4,69.6,5.5,42.1,19.3,0,77.1,0.5,96.2,2.0,8.5,0.5))
ggplot(data=Forest_EPs_pure, aes(x=Sand))+
geom_point(aes(y=B2_fs), color="green")+
geom_point(aes(y=H_total), color="black")+
geom_point(aes(y=B1_fs), color="brown")+
geom_point(aes(y=S_total), color="grey")+
geom_smooth(aes(y=B2_fs), method="glm",color="green")+
geom_smooth(aes(y=H_total), method="glm", color="black")+
geom_smooth(aes(y=B1_fs), method="glm", color="brown")+
geom_smooth(aes(y=S_total), method="glm", color="grey")+
scale_x_continuous("Sand content in g/kg")+
scale_y_continuous("Share of respective layer in %")
ggplot
通常期望數據采用長格式。 您可以使用gather
從tidyr
這一點。
例如,使用此數據,您將擁有一個包含“ B1_fs”,“ B2_fs”,“ H_total”和“ S_total”的列,或者在重塑數據之前可能擁有的任何其他列。 這樣,您就可以將該變量映射到color上,從而獲得一個圖例,並在scale_color_manual
使用命名矢量手動設置顏色。
通常,您不希望使用相同類型的多個geom
來執行相似的操作,例如重復使用geom_point
來繪制不同顏色的點。
library(ggplot2)
Forest_EPs_pure <- data.frame("Sand"=c(23,41,32,34,38,49,32,18,91,18,117,61,68,43,46,59,74,88,58,92,882,941,870,926,861,848,810,964,874,860,755,942),
"B2_fs"=c(61,68,80,20,43,72,93,60,75,75,97,83,74,51,87.5,74,97,74,71,60,0,0,0,0,0,0,17,0,0,0,0,0),
"H_total"=c(89.7,109.6,15.4,140.1,145.4,164,11.6,118.1,110.8,50.4,77.8,124.6,115.6,152,63.6,112.9,127.7,138.5,69.8,149.4,32,63.4,35.7,84.5,5.8,0,8.8,1.6,20.2,31.8,25.8,0.5),
"B1_fs"=c(0,0,0.5,0,0.5,0,3,0,0,0.5,2,10,0,0,7,0,0,20,15,18,75,71,115,72,65,95,40,35,43,96,98,95),
"S_total"=c(8.6,8.5,2.2,18.9,37.9,53.1,3.8,76,67.4,4.8,35.2,78,74.5,65.6,41.6,58,37.1,60.7,68,39.5,44.4,69.6,5.5,42.1,19.3,0,77.1,0.5,96.2,2.0,8.5,0.5))
forest_long <- tidyr::gather(Forest_EPs_pure, key = variable, value = value, -Sand)
head(forest_long)
#> Sand variable value
#> 1 23 B2_fs 61
#> 2 41 B2_fs 68
#> 3 32 B2_fs 80
#> 4 34 B2_fs 20
#> 5 38 B2_fs 43
#> 6 49 B2_fs 72
ggplot(forest_long, aes(x = Sand, y = value, color = variable)) +
geom_point() +
geom_smooth(method = glm) +
scale_color_manual(values = c(B2_fs = "green", H_total = "black", B1_fs = "brown", S_total = "grey"))
由reprex軟件包 (v0.2.0)於2018-05-10創建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.