为什么我的ggplot2图例在这个R程序中重叠?
我的数据是:为什么我的ggplot2图例在这个R程序中重叠?,r,ggplot2,R,Ggplot2,我的数据是: 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
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),
labels = c("Wait time", "Idle time"))+
scale_fill_manual('Time',values=c('transparent','blue'),
labels = c("Wait time", "Idle time"))
输出:
使用的一些数据:
#Data
df <- structure(list(x = 1:15, y = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), z = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), a = c(7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L), b = c(0L, 7L, 14L, 21L,
28L, 35L, 42L, 49L, 56L, 63L, 70L, 77L, 84L, 91L, 98L), c = c(7L,
14L, 21L, 28L, 35L, 42L, 49L, 56L, 63L, 70L, 77L, 84L, 91L, 98L,
105L), d = c(0L, 7L, 14L, 21L, 28L, 35L, 42L, 49L, 56L, 63L,
70L, 77L, 84L, 91L, 98L), e = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L)), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15"))
#数据
df你所说的重叠是什么意思?尝试dput(df)
并粘贴输出我可以删除我的问题吗?我想重新发布它,因为我的数据显示不好。@Khalar您的数据显示出来了@Khalar你想在你的传奇中只使用圆圈而不填充,对吗?谢谢你的帮助。嗨,@Duck我试过你的代码,但我在情节中看到红色和蓝色圆圈在情节中互换。我得到的不是d的红色圆圈,而是与我的传说相矛盾的蓝色实心圆圈。你能帮帮我吗?提前感谢。@Khalar尝试在缩放选项中使用标签labels=c(“等待时间”、“空闲时间”)
将顺序更改为labels=c(“空闲时间”、“等待时间”)
可能您的数据不同!是的,它起作用了。但是标签应该按照颜色的顺序排列。我试着用同样的数据。为什么不这样做?@Khalar你也应该按照标签上的颜色顺序玩游戏!