r - 当我使用散点图时,是否可以将一个 ggplot 添加到另一个之上?
问题描述
我有一个包含白天点的数据集,我有一个包含晚上点的数据集。我想将夜晚的情节添加到白天的情节之上,这样我就可以在同一个情节中比较两者。这可能吗?
我已经有白天和黑夜的 ggplot,称为 plot_day 和 plot_night。我想在白天的图中添加夜晚的点,并且点的形状和颜色不同,所以我可以很容易地看到正方形是例如白天,圆形是例如夜晚:
ggplot(plot_day, aes(x=time, c(plot_day, plot_night))) +
ggtitle("") + theme_update(plot.title=element_text(hjust=0.5))+
geom_points(aes(y=plot_day, colour="plot_day"))+
geom_point(aes(y=plot_night, colour="plot_night"))+
labs(title="", x="", y="") + ylim(c(0,5))+
scale_color_discrete(name="", labels=c("Day", "Night")), theme_light() +
scale_x_date(date_labels=%b%, date_breaks="1 month", minor_breaks=NULL)+
theme_update(plot.title=element_text(hjust=0.5)) + theme_light()
解决方案
我的方法将类似于以下内容,假设data_day
并data_night
具有相同的列(但替换您自己的数据):
ggplot(data_day, aes(x = time, y = some_y_value_column)) +
geom_point(data = data_day, aes(shape = "day", colour = "day")) +
geom_point(data = data_night, aes(shape = "night", colour = "night")) +
...theme/scales/labs etc...
然后,您可以通过添加适当的比例来控制形状和颜色:
scale_colour_manual(values = c("red", "blue"), breaks = c("day", "night")) +
scale_shape_manual(values = c(15, 19), breaks = c("day", "night"))
编辑:如果您先合并数据并执行以下操作,则会更容易:
new_data <- rbind(cbind(data_day, id = "day"),
cbind(data_night, id = "night")
ggplot(new_data, aes(x = time, y = some_y_value_column)) +
geom_point(aes(shape = id, colour = id))
推荐阅读
- amazon-web-services - 使用 PowerShell 检索 AWS SNS 的加密状态
- php - 如何从日期数组中分离日期和日期?
- android - 有没有办法从 android studio 中的 webView 获取元素?
- json - 从 JSON 数组中选择特定值
- php - Magento 产品饲料出口
- xml - 如何将 xml 文件添加到我的解决方案并将文件路径作为字符串获取
- snakemake - 在蛇文件中调用另一个管道会导致丢失输出错误
- c - C中的数组到函数指针。如何使用枚举从数组中选择我想要的元素?
- r - 在 R 中的循环内添加 [[j]] 或在每一行中使用的其他信息
- ms-office - 如何从 PowerPoint 自动打开链接/网址?