geom_abline legend - 如何添加abline文本图例

时间:2017-06-30 17:12:48

标签: r

我正在尝试构建图表控件。我想明确绿线(abline1)是中心线,红线(abline2和abline3)是限制控制。

你能帮助我吗?

library(ggplot2)

amostra <- rnorm(30, 10)

qplot(y = amostra, x = seq_along(amostra), ylim = c(5,15), main = "Gráfico de Controle", xlab = 'Período', ylab = 'Valores') + geom_line() +
geom_abline(aes(slope=0, intercept=10), colour = 'green', size=1) +
geom_abline(aes(slope=0, intercept=7), colour='red', size = 1) +
geom_abline(aes(slope=0, intercept=13), colour='red', size = 1) +
theme(plot.title = element_text(hjust = 0.5))

2 个答案:

答案 0 :(得分:3)

如果你想要一个传奇,那么你需要一个美学映射。在aes()中移动颜色并添加scale_color_identity()。您可以使用

执行此操作
qplot(y = amostra, x = seq_along(amostra), ylim = c(5,15), main = "Gráfico de Controle", xlab = 'Período', ylab = 'Valores') + geom_line() +
  geom_abline(aes(slope=0, intercept=10, colour = 'green'), size=1) +
  geom_abline(aes(slope=0, intercept=7, colour='red'), size = 1) +
  geom_abline(aes(slope=0, intercept=13, colour='red'), size = 1) +
  theme(plot.title = element_text(hjust = 0.5)) + 
  scale_color_identity(labels=c("central","limits"), guide="legend")

enter image description here

答案 1 :(得分:1)

这是一个相当糟糕的黑客,但是为了强制线条在图例中,您可以尝试使用geom_errorbarh()函数绘制它们。这将绘制错误栏。如果在使用scale_x_continuous()明确设置绘图宽度的同时使它们与绘图一样宽,则可以使用图例中显示的水平条。