【问题标题】:Single legend when using group, linetype and colour in ggplot2?在 ggplot2 中使用组、线型和颜色时的单个图例?
【发布时间】:2015-10-15 02:33:58
【问题描述】:

我正在创建一个非常简单的图,它将数据分组并使用分组变量来确定线型和颜色。然后我使用'scale_linetype_manaul'和'scale_colour_manual'覆盖那些。到目前为止一切都很好,但是当我尝试修改图例标签或其标题时,图例分为两部分:一部分用于线型,另一部分用于颜色。我只想要一个图例,但带有自定义标签和标题。

this question 之后,我确保将两个比例对象命名为相同,但这似乎没有帮助。

小例子:

X <- data.frame(TPP=factor(c(1,5,10,1,5,10,1,5,10)), 
                value=c(-0.035819, 0.003356, 0.066091, -0.028039, 0.004333, 0.060292, -0.023115, 0.005661, 0.058821), 
                horizon=c(1,1,1,2,2,2,3,3,3))
ggplot(X, aes(x=horizon, y=value, group=TPP, col=TPP, linetype=TPP))+
  geom_line(size=1)+
  scale_linetype_manual(name="X", values = c("solid","dashed", "dotted")) +
  scale_color_manual(name="X", values = c("black", "red", "blue"), labels=c("Low", "5","High"))

这会产生以下带有两个图例的figure。如何使用自定义标签和标题重新组合这些图例?

【问题讨论】:

  • 您是否要删除不需要的图例,例如在您的两个scale_...() 调用中使用guide="none"

标签: r ggplot2 colors line legend


【解决方案1】:

这可能会有所帮助:

 ggplot(X, aes(x=horizon, y=value, group=TPP, col=TPP, linetype=TPP))+geom_line(size=1)+
  scale_linetype_manual(name="X", values = c("solid","dashed", "dotted"),labels=c("Low", "5","High")) +
  scale_color_manual(name ="X", values = c("black", "red", "blue"),labels=c("Low", "5","High"))

如果scale_color_manualscale_linetype_manual中定义的标签不同,或者只在其中一个中指定,则会得到两个不同的图例。

【讨论】:

  • 谢谢,不知道您需要复制标签以避免重复图例。
猜你喜欢
  • 2014-10-24
  • 1970-01-01
  • 2021-09-11
  • 2014-06-14
  • 1970-01-01
  • 1970-01-01
  • 2018-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多