首页 > 解决方案 > R ggplot2:修改由于模式显示的图形结果

问题描述

我有以下代码和图表:

library(ggplot2)
library(dplyr)

dt <- data.table(cod= c(202101,202101,202101,202101,202102,202102,202102,202102,202103,202103,202103,202103,202104,202104,202104,202104),
                 val= c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4),
                 porc= c(0.01,0.03,0.06,0.07,0,0.04,0.07,0.07,0.02,0.04,0.04,0.04,0.02,0.02,0.02,0.02)
                 
)

dt %>% 
  mutate(cod= as.character(cod)) %>% 
  ggplot(aes(x=val,y=porc))+
  geom_line(aes(color=cod))+
  geom_point(aes(color=cod))

在此处输入图像描述

我想通过以下规则修改图表上的结果: -max 代码(示例中为 202104):不要修改 -max 代码 -1(示例中为 2020103):显示所有结果减去最后一个 -max代码 -2(示例中为 2020102):显示所有结果减去最后两个 - 依此类推

所以,我的最终结果应该是这样的: 在此处输入图像描述

标签: rggplot2

解决方案


您可以将变量组合起来cod,然后删除重复的值porc

dt %>%
mutate(cod= as.character(cod)) %>% 
group_by(cod) %>% 
distinct(porc, .keep_all = TRUE) %>% 
ungroup() %>% 
ggplot(aes(x=val,y=porc))+
geom_line(aes(color=cod))+
geom_point(aes(color=cod))

在此处输入图像描述


推荐阅读