当我有一个带ggplot的geom_errorbar时改变线条颜色

时间:2014-08-28 18:26:05

标签: r ggplot2

我有以下代码:

library(ggplot2)
library(gridExtra)

data = data.frame(fit = c(9.8,15.4,17.6,21.6,10.8), lower = c(7.15,12.75,14.95,18.95,8.15), upper = c(12.44,18.04,20.24,24.24,13.44), factors = c(15,20,25,30,35), var = rep("Fator", 5))

gp <- ggplot(data, aes(x=factors, y=fit, ymax=upper, ymin=lower))
gp <- gp + geom_line(aes(group=var),size=1.2) + 
               geom_errorbar(width=.8, size=1, aes(colour='red')) + 
               geom_point(size=4, shape=21, fill="grey") +  
               labs(x = paste("\n",data$var[1],sep=""), y =paste("Values","\n",sep="")) + 
               theme(legend.position = 'none', axis.text = element_text(size = 11), plot.margin=unit(c(0.4,0.4,0.4,0.4), "cm"), axis.text.x  = element_text(angle=45, hjust = 1, vjust = 1)) +
               ylim((min(data$lower)), (max(data$upper)))

我想在拥有ggplot对象后更改线条颜色。我在尝试:

gp + scale_color_manual(values = "green")

但它会更改错误栏颜色而不是线条颜色。

1)我该怎么做才能改变线条颜色?

2)如何更改点颜色?

谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

gp$layers[[1]] <- NULL
gp + geom_line(aes(group = var),color = "green",size = 1.2)

类似的技术应该适用于点层。技术是从我对similar问题的回忆中挖掘出来的。

我只是手动查看了gp$layers的内容,看看哪个是哪个。我推测订单将是它们在您的代码中出现的顺序,但我不一定会依赖它。