r - 绘制两个不同数据框中变量的平均值并将其绘制在同一张图中
问题描述
我目前有两个数据框:dataframe5 和 dataframe 6。
我在一个图中为两个数据框创建了一个时间图(总计与年份),我需要找到这两条线的平均值并将其绘制在同一个图中。时间图
到目前为止,我的尝试还没有奏效
library(ggplot2)
df <- merge(dataframe5, dataframe6, by = 'Total')
ggplot(df) +
geom_line(aes(Year.x, Total), color = '#0087E9', size = 5) +
theme_minimal() +
theme(axis.text = element_text(color = 'black', size = 16),
axis.line = element_line(color = 'black'))
注意:两个数据框都包含 88 个观察值
解决方案
这是一个通用答案,可以扩展到您拥有的尽可能多的数据帧:
library(dplyr)
df_list = list(df5 = df5, df6 = df6)
library(dplyr)
big_df = bind_rows(df_list, .id = "source")
big_df = big_df %>% group_by(Year) %>% summarize_if(is.numeric, mean) %>%
mutate(source = "Mean") %>%
bind_rows(big_df)
ggplot(big_df, aes(x = Year, y = Total, color = source)) +
geom_line()
更恰当地命名list
将有助于情节标签。如果您确实有更多数据框,我强烈建议您阅读我在如何制作数据框列表中的答案。
使用这些数据:
df5 = read.table(text = "Year VegC LittC SoilfC SoilsC Total
1 2013 1.820858 1.704079 4.544182 1.964507 10.03363
2 2014 1.813573 1.722106 4.548287 1.964658 10.04863
3 2015 1.776853 1.722110 4.553425 1.964817 10.01722
4 2016 1.794462 1.691728 4.556691 1.964973 10.00785
5 2017 1.808207 1.708956 4.557116 1.965063 10.03936
6 2018 1.831758 1.728973 4.559844 1.965192 10.08578",
header = T)
df6 = read.table(text =
" Year VegC LittC SoilfC SoilsC Total
1 2013 1.832084 1.736137 4.542052 1.964454 10.07474
2 2014 1.806351 1.741353 4.548349 1.964633 10.06069
3 2015 1.825316 1.729084 4.552433 1.964792 10.07164
4 2016 1.845673 1.735861 4.553766 1.964900 10.10020
5 2017 1.810343 1.754477 4.556542 1.965033 10.08640
6 2018 1.814503 1.728337 4.561960 1.965191 10.07001",
header = T)
推荐阅读
- blogs - Squarespace 博客上的 Facebook 插件
- selenium-webdriver - 等待选项被填写到下拉Jmeter
- python - 是否刷新 OAuth 刷新令牌标准行为?
- tensorflow - TensorFlow 2.3:使用自定义层和模型从 ModelCheckPoint 回调加载模型
- c# - .NET Framework (4.8) 的 Cake runner 不选择环境变量
- spring - 如何在春季启动中访问战争之外的资源文件夹
- module - Rpi4 和 Ejabberd 外部注册
- javascript - 如何将对象添加为数据属性
- image - Flutter - 如何在使用 Image.Network 调用带有错误 url 的图片时捕获错误
- database - 如何在 VUE 中使用数据库(使用内联 css)为每一行动态设置 css 属性 - Vue 好表