【发布时间】:2015-04-09 02:52:16
【问题描述】:
如何让 ggplot2 为不同的几何图形提供单独的图例,它们都使用颜色来表示 2 个不同的变量。我想要 3 个图例,一个用于 z、a 和 b,但 a 和 b 似乎组合成一个图例,即使 a 和 b 代表不同的变量。我还希望能够控制每个图例中的颜色。
dat <- data.frame(
y = rnorm(200),
x = sample(c("A", "B"), 200, TRUE),
z = sample(100:200, 200, TRUE),
a = sample(c("male", "female"), 200, TRUE),
b = factor(sample(1:2, 200, TRUE))
)
ggplot(dat, aes(y = y, x = x)) +
geom_point(aes(color = a, size = z)) +
geom_boxplot(fill = NA, size=.75, aes(color=b)) +
scale_color_manual(values = c("#F8766D", "#00BFC4", "orange", "purple"))
【问题讨论】:
-
可能是一种更简单的方法,但您可以绘制两个图,然后合并图例...stackoverflow.com/questions/26727741/…
-
@user20650 我考虑过这一点,如果需要,我会走那条路,但似乎应该有更简单的方法。
-
我明白为什么要将它们分开,但是对于任何其他美学(透明度、大小、形状、彩条等),将它们分开是没有意义的。例如,透明度 0-25 是一个变量,另一个变量是 26-50,这是相同的比例。当然,颜色可以更加离散,因此它可以更有意义..只是我的想法,为什么这不是直截了当的。 hadley 对他的 ggplot 非常讲究
-
@rawr 我正在写我论文的一部分,描述图形的分层语法。实际上,我看不到对此有用的应用程序,因为我们正在重载预属性,以至于没有任何东西突出并且它们被仔细处理。语法的美妙之处在于它在封闭系统中是灵活的,以至于图形遵循语法但没有意义。