2016-09-26 66 views
-1

见例如:如何在ggplot2中注释这样的行?

Example

我希望我并不需要手动指定文本的协调员。如果这在ggplot2中实现过于复杂,R中有哪些替代方案?或者甚至可能不在R?

+2

可以使用['ggrepel'](https://cran.r-project.org/web/packages/ggrepel/vignettes/ggrepel.html)生成类似这样的东西。一个可重复的例子将更多地邀请实际的答案。 – Axeman

+0

为什么不使用默认图例?替代品可以手动添加文字到最后的情节。 – zx8754

回答

1

正如@Axeman所说,ggrepel是一个体面的选择。不幸的是,它只会避免与其他标签重叠,而不是线条,因此解决方案并不完美。

library(ggplot2) 
install.packages("ggrepel") 
library(ggrepel) 

set.seed(50) 
d <- data.frame(y = c(rnorm(50), rnorm(50, 5), rnorm(50, 10)), 
    x = rep(seq(50), times = 3), 
    group = rep(LETTERS[seq(3)], each = 50)) 

ggplot(d, aes(x, y, group = group, label = group)) + 
    geom_line() + 
    geom_text_repel(data = d[d$x == sample(d$x, 1), ], size = 10) 
+0

我得到错误:“zero_range(from)中的错误:x必须是长度1或2” – Jfly

+0

您“得到了”?但是你没有提供任何数据,所以我们不知道“”已经完成到“”。 (这就是我对这个问题倒戈的基础。) –

+0

我从他的上面的代码中得到了错误.... .... OMG .... – Jfly