【发布时间】:2018-03-30 16:05:47
【问题描述】:
我有一个包含 4 个变量的数据,如下所示:
id|name|year|value|
1 A 16 500
1 A 15 400
1 A 14 430
2 B 16 200
2 B 15 180
2 B 14 170
3 A 16 620
3 A 15 510
3 A 14 200
然后,我必须在 ggplot 中为每个 id 创建一个时间折线图,但显示它的标签而不是它的 id。我所做的是:
ggplot(db, aes(x=year, y= value)) + geom_line() + facet_wrap(~db$id)
但它显示图表写的是他们的 ID 而不是他们的名字,所以我尝试了:
ggplot(db, aes(x=year, y= value)) + geom_line() + facet_wrap(~db$name)
它创建了带有正确标签的折线图,但是 id 1 和 id 3 具有相同的名称,因此,最后,它只创建了 2 个图表而不是 3 个图表,其中一个有 6 个观察值而不是 3 个.
有没有办法将名称与 id 连接起来?然后通过 id 连接更正名称。
【问题讨论】:
-
如果您提供complete minimal reproducible example 来回答您的问题,我们更有可能为您提供帮助。我们可以从中工作并用来向您展示如何回答您的问题。
-
好吧,我刚才展示的内容是最小的、完整的和可验证的。
-
参见
?labeller中的示例:“# 或者使用字符向量作为查找表:”。例如。lab <- c("1" = "A", "2" = "B", "3" = "A");facet_wrap(~id, labeller = labeller(id = lab))
标签: r ggplot2 concatenation facet-wrap