如何解决需要在ggplot中添加图例和修复轴
我是 ggplot 的新手,我正在尝试弄清楚如何向图形添加图例并重新标记 x 轴。我已经附上了绘图代码和 resulting graph 。我想添加一个图例来解释蓝线以及绿点和红点是什么。我还希望 x 轴上的年份显示为 2018,2019,...,2020 而不是 2017.5,2010.0,2020.0。我在在线文档中找不到解决方案。感谢您的帮助。
ggplot(data = annual_rate_preds) +
geom_point(mapping = aes(x = year,y = predicted),color = 'green') +
geom_line(mapping = aes(x = year,y = observed),color = 'blue') +
geom_point(data = backfit_rate_preds,mapping = aes(x = target_year,y = rate_pred),shape = 18,color = 'red',size = 2) +
theme(plot.title = element_text(size = 10))
解决方法
使用一些随机示例数据可以这样实现:
- 使用
scale_x_continuous(breaks = scales::pretty_breaks())
可以提供漂亮的 x 轴中断和标签 - 要获得图例,您必须映射美学,即在 aes() 内移动
color
。然后可以通过scale_color_manual
设置颜色值
- 轴、图例、...的标签可以通过
labs()
设置
- 最棘手的部分是让图例正确。为此,我使用
guides
和guide_legend
来调整图例,使得observed
只显示一条实线,而其他类别只显示点(形状 16)。
library(ggplot2)
set.seed(42)
annual_rate_preds <- data.frame(
predicted = runif(13,-.1,.1),observed = runif(13,year = 2008:2020
)
backfit_rate_preds<- data.frame(
rate_pred = runif(13,target_year = 2008:2020
)
ggplot(data = annual_rate_preds) +
geom_point(mapping = aes(x = year,y = predicted,color = 'predicted')) +
geom_line(mapping = aes(x = year,y = observed,color = 'observed')) +
geom_point(data = backfit_rate_preds,mapping = aes(x = target_year,y = rate_pred,color = 'rate_pred'),shape = 18,size = 2) +
scale_x_continuous(breaks = scales::pretty_breaks()) +
scale_color_manual(values = c(predicted = "green",observed = "blue",rate_pred = "red")) +
theme(plot.title = element_text(size = 10)) +
guides(color = guide_legend(override.aes = list(linetype = c("solid","blank","blank"),shape = c(NA,16,16)))) +
labs(x = "Year",y = NULL,color = NULL)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。