手动添加图例后R语言ggplot折线图变形问题求助
解决ggplot折线图添加图例后变形的问题
嘿,我一眼就看出问题出在哪啦!你把宽格式数据转成长格式后,在geom_line里多写了个group = 1,这就是折线变乱的罪魁祸首。
咱们来拆解下原因:
- 你原始的宽格式代码里,每个
geom_line单独绘制一条变量的折线,设置group=1是为了让ggplot把每个变量的所有时间点当成一组来连线,这时候是没问题的。 - 但用
melt转成长格式后,dd数据里的variable列已经帮你区分了不同的变量(var1/var2/var3/var4),当你在aes里指定colour=variable时,ggplot会自动把variable作为分组依据,给每个变量单独连线。可你额外加了group=1,就强制让ggplot把所有变量的所有数据点当成同一个组,它就会不管变量归属,直接按时间顺序把所有点连起来,折线自然就乱成一团了。
那修正方法超简单,把group = 1删掉就行!正确的代码如下:
df_sub <- df[,c(1, 2,3,4, 5)] dd = melt(df_sub, id=c("Time")) ggplot(dd) + geom_line(aes(x=Time, y=value, colour=variable))+ scale_colour_manual(values=c("red","green","blue", "black"))
这样修改后,ggplot会根据variable的不同值自动分组绘制四条折线,同时图例也能正常显示,和你原始图的折线形状完全一致~
内容的提问来源于stack exchange,提问作者leopardsticks
相关产品推荐
相关产品推荐

