控制ggplot2中水平线的颜色

时间:2012-07-02 03:47:45

标签: r ggplot2

任何人都可以告诉我这个脚本出了什么问题? 我需要2条水平,黑色,虚线,但我有两个红色连续。 尽管使用了theme_bw,我也无法将绘图边距的颜色更改为黑色,并且根据需要,boxplot的填充也不是灰色。

  dat1 <- data.frame (xvar = rep(c("A", "B"), each=10),

                yvar = 1:20 + rnorm(20,sd=3))

  ggplot(dat1, aes(x=xvar, y=yvar)) +
  theme_bw()+
  geom_boxplot(fill=grey)+
  geom_hline(aes(yintercept=40, color="black", linetype="dashed"))+
  geom_hline(aes(yintercept=33.84, color="black", linetype="dashed"))+  
  scale_x_discrete(name="") +
  scale_y_continuous(name="temperature (°C)")+
  opts(
    panel.grid.major = theme_line(size = 0.5, colour = NA),
    panel.background = theme_rect(colour = NA),   
    axis.title.y = theme_text(angle=90,face="bold", colour="black", size=14),
    axis.text.y  = theme_text(face="bold",angle=0, size=14,colour="black"),
    axis.title.x = theme_text(face="bold", colour="black", size=14),
    axis.text.x  = theme_text( size=14,vjust=1.2, colour=NA))

非常感谢!

1 个答案:

答案 0 :(得分:12)

关于黑色虚线,您应该在aes()之外定义它。请尝试以下代码:

geom_hline(aes(yintercept=40), color="black", linetype="dashed")

关于方框图,您应该将代码更正为下面的代码:

geom_boxplot(fill="gray")

最后,要获得黑色边距,请注意您设置的边距在您的选项中有NA颜色(...,panel.background = theme_rect(color = NA),...)。要解决此问题,请尝试以下方法:

panel.background = theme_rect(colour = "black")

希望我的评论有所帮助。