我正在嘗試在我的圖表中添加一個由兩條線組成的圖例。不幸的是,我不明白怎么做。請你幫幫我好嗎?我的資料框可以在下面找到。謝謝你。
# dput(df)
structure(list(t = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), Beta_Treatment = c(0.999550283587599,
1.1284848818908, 1.3173797973744, 1.381630131904, 1.42558575749304,
1.598454651784, 1.68182321476, 1.908913645904, 1.9830406566956,
2.0704834391088), Beta_Control = c(0.822042496772398, 0.914170557749195,
0.812776816705598, 0.829879870335997, 0.906381000106958, 0.891107911295998,
0.885094437239998, 0.810487561695997, 0.816917509704399, 0.881900118891192
), treatment_stderr = c(0.0466078055173255, 0.0451188571313495,
0.0473857585047991, 0.0465872903741648, 0.0436607368165115, 0.0479028140228299,
0.0445418661900949, 0.0451947124622918, 0.0474264037378467, 0.0464878615840165
), control_stderr = c(0.0329566953375247, 0.0319038498369643,
0.0335067911704116, 0.0329421889406788, 0.0308728030745565, 0.0338724046334612,
0.03149585562972, 0.0319574876558628, 0.0335355316903225, 0.0328718821689198
)), class = "data.frame", row.names = c(NA, -10L))

#create and save graph as pdf
p1 <- ggplot(data=df, mapping=aes(y=Beta_Treatment, x=t))
geom_line(linetype="dashed", colour = "blue")
geom_point(shape = 15)
geom_errorbar(aes(ymin=(Beta_Treatment-1.96*treatment_stderr), ymax=(Beta_Treatment 1.96*treatment_stderr)), width=1)
ylim(c(0,2.5)) labs(y = "Beta")
geom_vline(xintercept = 6)
scale_x_continuous(limits = c(0, 11), breaks = c(0, 2, 4, 6, 8, 10))
theme_bw()
ggsave(last_plot(),filename = "plot.pdf")
p2 <- p1 geom_line(aes(y=Beta_Control, x=t),linetype="dashed", colour = "green")
geom_point(aes(y=Beta_Control, x=t), shape = 19)
geom_errorbar(aes(ymin=(Beta_Control-1.96*control_stderr), ymax=(Beta_Control 1.96*control_stderr )), width=1)
ylim(c(0,2.5))
geom_vline(xintercept = 6)
theme_bw()
ggsave(last_plot(),filename = "plot2.pdf")
uj5u.com熱心網友回復:
如果你想要一個圖例,那么你必須在美學上進行映射,即移動color到里面aes(),你會自動得到一個圖例。但是,在這種情況下設定所需的顏色需要通過scale_color_manual.
為此,我在coloraes 上映射了一些“會說話”的類別標簽,并為里面的這些類別分配顏色和標簽scale_color_manual。此外,我使用limits引數來設定類別的順序:
ggplot(data = df, mapping = aes(y = Beta_Treatment, x = t))
geom_line(aes(colour = "treat"), linetype = "dashed")
geom_point(shape = 15)
geom_errorbar(aes(ymin = (Beta_Treatment - 1.96 * treatment_stderr),
ymax = (Beta_Treatment 1.96 * treatment_stderr)), width = 1)
ylim(c(0, 2.5))
labs(y = "Beta", color = NULL)
geom_vline(xintercept = 6)
scale_x_continuous(limits = c(0, 11), breaks = c(0, 2, 4, 6, 8, 10))
theme_bw()
geom_line(aes(y = Beta_Control, color = "control"), linetype = "dashed")
geom_point(aes(y = Beta_Control), shape = 19)
geom_errorbar(aes(ymin = (Beta_Control - 1.96 * control_stderr),
ymax = (Beta_Control 1.96 * control_stderr)), width = 1)
scale_color_manual(values = c(treat = "blue", control = "green"),
labels = c(treat = "Treatment", control = "Control"),
limits = c("treat", "control"))

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/531251.html
下一篇:R中資料框中列的成對減法
