我想在带有多个系列的ggplot 上标记一条水平线,而不将该线与一系列相关联。 R ggplot2: Labelling a horizontal line on the y axis with a numeric value询问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 https://stackoverflow.com/a/12876602/1840471
plot2 + geom_text(aes(0, h, label=h, vjust=-1))
列:
annotate
如何在不将标签与其中一个系列相关联的情况下标记线条?
答案 0 :(得分:5)
这是你的想法吗?
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)
首先,您可以将颜色映射设置为点图层的局部颜色。其次,您不必将所有美学都放入aes(...)
的调用中 - 只需要将那些美学映射到数据集的列。三,在调用特定geom _ *时,您可以使用data=...
获取特定于图层的数据集。
答案 1 :(得分:1)