gpt4 book ai didi

r - ggplot2 - 组合 geom_point 和 geom_line 的图例

转载 作者:行者123 更新时间:2023-12-04 01:12:17 25 4
gpt4 key购买 nike

我得到了一个数据集,我想将一个变量绘制为点,将其他变量绘制为具有不同线型的线(每个变量具有不同的颜色)。

 a <- c(10:20)
df <- data.frame(a=a,b=a,c=a*a/10,d=10*sqrt(a))
df_melt <- reshape2::melt(df,id.vars='a')

ggplot(df_melt, aes(x=a,y=value,colour=variable,linetype=variable,shape=variable))+
geom_line(data=subset(df_melt,variable == "b"))+
geom_line(data=subset(df_melt,variable == "c"))+
geom_point(data=subset(df_melt,variable == "d"))

这现在产生了想要的情节:

enter image description here

然而,图例现在显示所有三个变量的线型和形状,尽管并非所有变量都实际显示它们。

如何相应地删除线型或形状以使图例与绘图显示一致?

最佳答案

一般来说,如果您发现自己添加了多个具有不同子集的 geom_line()geom_point() 层——通常有一种更好的方法,即直接操作变量.在这里,我通过分别为点或线添加 NA 值(在 scale_linetype_manual()scale_shape_manual() 中)来完成失踪。 (使用的形状/线型与您上面使用的不完全相同,但很容易调整。)

ggplot(df_melt, aes(x=a,y=value,colour=variable,
linetype=variable,shape=variable))+
geom_point()+
geom_line()+
scale_linetype_manual(values=c(1,2,NA))+
scale_shape_manual(values=c(NA,NA,2))

关于r - ggplot2 - 组合 geom_point 和 geom_line 的图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55211303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com