r - 用于分组数据和 R 中带有日期的两个变量的 facet ggplot
问题描述
我想在 R 中为我的模型组绘制一个侧面图,以便每个图表显示 12 个月的数据以及每个 Val1 和 Val2 的两条不同颜色的线。
Model No. Date Val1 Val2
a 01/10/2020 2.39 4.67
a 01/11/2020 5.15 6.05
a 01/12/2020 3.19 1.62
a 01/01/2021 8.76 11.65
a 01/02/2021 15.72 11.41
a 01/03/2021 10.92 11.91
a 01/04/2021 11.96 19.27
a 01/05/2021 11.52 15.58
a 01/06/2021 2.92 4.42
a 01/07/2021 4.89 6.01
a 01/08/2021 10.05 15.19
a 01/09/2021 3.46 4.85
b 01/10/2020 3.76 3.41
b 01/11/2020 0.88 1.25
b 01/12/2020 0.93 0.78
b 01/01/2021 1.87 1.88
b 01/02/2021 1.40 1.28
b 01/03/2021 1.58 1.29
b 01/04/2021 4.50 2.93
b 01/05/2021 5.31 5.45
b 01/06/2021 9.19 6.69
b 01/07/2021 4.09 3.11
b 01/08/2021 5.20 3.86
b 01/09/2021 4.39 3.76
我已经从 excel 中添加了所需的输出,有点像这些线。彼此相邻的折线图或条形图显示每组中的两个值(Val1 和 Val2)比较。
如果有人可以提供帮助,将不胜感激。提前致谢。
解决方案
试试这个方法。重塑数据以长期保留模型,然后确定日期。然后使用facet_wrap()
. 这里的代码:
library(ggplot2)
library(dplyr)
library(tidyr)
#Code
df %>% pivot_longer(-c(1,2)) %>%
ggplot(aes(x=Date,y=value,color=name,group=name))+
geom_line()+
scale_x_date(breaks = '1 month')+
facet_wrap(.~`Model No.`,scales = 'free',ncol = 1)+
theme_bw()+
theme(legend.position = 'bottom',
axis.text.x = element_text(angle=90))+
labs(color='Serie')
输出:
推荐阅读
- bash - Nvidia-Docker2 不会安装在 Cloudformation UserData bash 脚本中
- selenium - 如何使用 Java 中的 Selenium WebDriver 在 Windows PC 上附加文件
- kotlin - 如何在 kotlin 中使用嵌套列表将 Triple 列表映射到数据类中
- c# - 使用 Reflection 为网站创建可扩展图表
- mysql - 如果列为空,我如何从 Mysql 的另一个表中导入一些列?
- laravel - 获取每周网站访问次数并在 laravel 中的图表 js 中显示
- python - Django如何获取管理员全名
- spring-integration - spring integration - SFTP 确保上传成功
- html - CSS - 在水平滚动上定位项目的问题
- discord - 无法在命令文件夹的代码文件中使用 message.guild.me.displayColor