【发布时间】:2016-08-05 03:47:19
【问题描述】:
我想使用填充和颜色创建一个包含多个几何图形(例如 geom_line 和 geom_bar)的绘图,但只有一个单一的综合指南,而不是一个用于填充的指南和另一个用于颜色的指南。
更复杂的是,这是一个让用户上传数据的应用程序的一部分,所以我不知道每个系列的名称,也不知道会有多少。所以需要自动生成指南。
我看到的示例都使用scale_colour_manual 和scale_colour_fill,但这假设您知道该系列的名称。例如:ggplot2 merge color and fill legends
我试图查看完成的情节的结构,看看我是否可以手动提取系列名称(以及它们的颜色等),但在任何地方都看不到。
这是一些测试数据。我正在使用“组”列来决定它是否应该在线条或条形几何中。
testdt <- data.table(
x = rep(c(1,2), each = 4),
name = c("a", "b", "c", "d"),
value = c(1,2,3,4,5,6,7,8),
group = c(1,2)
)
ggplot(data = testdt, aes(x = x, y = value)) +
geom_line(data = testdt[group == 1], aes(colour = name)) +
geom_bar(data = testdt[group == 2], aes(fill = name), stat = "identity")
这个例子产生了两个图例;两者都称为“name”,一个显示“a”和“c”行,另一个显示“b”和“d”区域。
编辑 - 阐明它应该是什么样子
这是之前的图片:
这就是我想要的样子:
【问题讨论】:
-
那么传奇究竟会是什么样子呢?传说中的颜色会写什么“名字”?您想同时显示填充颜色和线条颜色吗?你会如何结合这些?
-
如果您将
name转换为一个因子,然后将scale_color_discrete(drop=FALSE)和scale_fill_discrete(drop=FALSE)添加到您的绘图中,只要填充和颜色美学使用相同,您就会得到一个图例柱子。但是,这可能无法涵盖您所有的潜在用例。 -
@MrFlick 我已经编辑包含 png 以显示我希望它的外观。谢谢