微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的ggplot2图例在此R程序中重叠?

如何解决为什么我的ggplot2图例在此R程序中重叠?

我的数据是:

    x   y  z  a   b   c  d    e
1   1   0  0  7   0   7  0    0
2   2   0  0  7   7  14  7    0
3   3   0  0  7  14  21 14    0
4   4   0  0  7  21  28 21    0
5   5   0  0  7  28  35 28    0
6   6   0  0  7  35  42 35    0
7   7   0  0  7  42  49 42    0
8   8   0  0  7  49  56 49    0
9   9   0  0  7  56  63 56    0
10 10   0  0  7  63  70 63    0
11 11   0  0  7  70  77 70    0
12 12   0  0  7  77  84 77    0
13 13   0  0  7  84  91 84    0
14 14   0  0  7  91  98 91    0
15 15   0  0  7  98 105 98    0

我的代码是:

ggplot(data=df,aes(x))+
  geom_step(aes(y=d))+
  geom_point(aes(y=e,color="Blue"),shape=1,size=4)+
  geom_step(aes(y=e))+
  geom_point(aes(y=d,color="Red"),size=2)+
  theme(axis.text.x = element_text( vjust = 0.5),legend.position = "bottom",axis.line = element_line(),panel.grid.major = element_blank(),panel.grid.minor = element_blank(),panel.background = element_blank(),panel.border = element_blank())+
  scale_x_continuous("Patient number",labels = x,breaks = x)+
  ylab("time")+
  scale_color_identity(name="Time",breaks = c("Blue","Red"),labels = c("Wait time","Idle time"),guide = "legend")

我正在使用上面的代码,并且图例重叠。我该如何纠正?

解决方法

尝试这种方法,最好使用整形的数据而不是一个接一个地添加几何,因为修改元素会很麻烦。这里的代码:

library(ggplot2)
library(dplyr)
library(tidyr)
#Code
df %>% select(c(x,d,e)) %>% pivot_longer(-x) %>%
  ggplot(aes(x=x,y=value,color=name,shape=name,group=name,fill=name))+
  geom_step(color='black',show.legend = F)+
  geom_point()+
  theme(axis.text.x = element_text( vjust = 0.5),legend.position = "bottom",axis.line = element_line(),panel.grid.major = element_blank(),panel.grid.minor = element_blank(),panel.background = element_blank(),panel.border = element_blank())+
  ylab("time")+
  scale_color_manual('Time',values=c('red','blue'),labels = c("Wait time","Idle time"))+
  scale_shape_manual('Time',values=c(21,21),"Idle time"))+
  scale_fill_manual('Time',values=c('transparent',"Idle time"))

输出:

enter image description here

使用了一些数据:

#Data
df <- structure(list(x = 1:15,y = c(0L,0L,0L),z = c(0L,a = c(7L,7L,7L),b = c(0L,14L,21L,28L,35L,42L,49L,56L,63L,70L,77L,84L,91L,98L),c = c(7L,98L,105L),d = c(0L,e = c(0L,0L)),class = "data.frame",row.names = c("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"))

此外,帖子中不包含某些breaks元素,因此我省略了,但是您可以在绘制原始图时添加。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。