我想用多个序列在ggplot上标记一条水平线,而不必将该线与一系列相关联。R ggplot2:用数字值标记y轴上的水平线会询问单序列情况,该geom_text问题可以解决。但是,geom_text通过颜色和图例将标签与系列之一相关联。
考虑来自该问题的相同示例,另一color列:
library(ggplot2)
df <- data.frame(y=1:10, x=1:10, col=c("a", "b")) # Added col
h <- 7.1
plot1 <- ggplot(df, aes(x=x, y=y, color=col)) + geom_point()
plot2 <- plot1 + geom_hline(aes(yintercept=h))
# Applying top answer /sf/answers/901362171/
plot2 + geom_text(aes(0, h, label=h, vjust=-1))
Run Code Online (Sandbox Code Playgroud)
如何在不将标签关联到系列之一的情况下标记行?
这就是您的想法吗?
library(ggplot2)
df <- data.frame(y=1:10, x=1:10, col=c("a", "b")) # Added col
h <- 7.1
ggplot(df, aes(x=x,y=y)) +
geom_point(aes(color=col)) +
geom_hline(yintercept=h) +
geom_text(data=data.frame(x=0,y=h), aes(x, y), label=h, vjust=-1)
Run Code Online (Sandbox Code Playgroud)
首先,您可以使颜色映射局部于点图层。其次,您不必将所有美感都放入到调用中,而aes(...)只需要将它们映射到数据集的列即可。第三,您可以data=...在对特定geom_ *的调用中使用特定于图层的数据集。