繁体   English   中英

在ggplot图例中控制线型,颜色和标签

[英]Controlling linetype, color and label in ggplot legend

我在先前也已指定自定义线型和颜色的绘图上设置自定义图例标签时遇到麻烦。 在stackoverflow上有一个类似的问题,涉及线型和线色的自定义图例。 但是,一旦您希望在上述两个属性之上指定图例标签,ggplot2似乎开始崩溃。

这是我的可重复性最低的示例:

library(ggplot2)

df <- data.frame(x = rep(1:2, 2), y = c(1, 3, 2, 2),
           treatment = c(rep("one", 2), rep("two", "2")))

ggplot(df, aes(x = x, y = y, colour = treatment, linetype = treatment)) +
  geom_line() +
  scale_linetype_manual(values = c(1, 3),
                        labels = c("Treatment one", "Treatment two")) +
  scale_color_manual(values = c("black", "red"))

上面的代码导致下图

在scale_linetype_manual或scale_color_manual中设置标签会导致创建两个图例。

scale_linetype_manual()scale_color_manual()设置标签会导致创建两个单独的图例。 具有正确虚线的那个将永远是无色的。 另一方面,具有正确颜色的线将不能正确表示线型(仅实线)。

是否可以在ggplot2中同时控制颜色,线型和图例标签? 还是这是软件包的限制,我应该只在getgo的数据框中正确指定标签?

使scale_linetype_manual()scale_color_manual()的标签相同。

library(ggplot2)

df <- data.frame(x = rep(1:2, 2), y = c(1, 3, 2, 2),
                 treatment = c(rep("one", 2), rep("two", "2")))

ggplot(df, aes(x = x, y = y, colour = treatment, linetype = treatment)) +
  geom_line() +
  scale_linetype_manual(values = c(1, 3),
                        labels = c("Treatment one", "Treatment two")) +
  scale_color_manual(values = c("black", "red"),
                     labels = c("Treatment one", "Treatment two"))

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM