在ggplot2中为dotchart定制网格?

时间:2013-03-16 18:43:58

标签: r plot ggplot2 lattice

如何在ggplot2中绘制像格子dotchart这样的点图,它具有较粗的网格线和仅水平网格线(即删除垂直网格线),如下所示:

http://i.stack.imgur.com/gBtM2.png

除了使水平线更大胆以使它们更加明显。

有没有办法在ggplot2中执行此操作?

1 个答案:

答案 0 :(得分:5)

要处理的一些示例数据。

df<-data.frame(nam=rep(c("A","B","C","D","E"),times=3),
  val=runif(15,0,1),type=rep(c("TypA","TypB","TypC"),each=5))
df<-rbind(df,df,df)
df$num.lev<-rep(c(10,20,30),each=15)

要更改网格线的外观,panel.grid.majorpanel.grid.minor可以在theme()中使用。使用panel.margin=,您可以实现所有方面紧密地绘制在一起。

library(ggplot2)
library(grid)
ggplot(df,aes(val,nam))+geom_point(size=3,colour="blue")+facet_grid(num.lev~type)+
  scale_x_continuous(breaks=c(0,0.2,0.4,0.6,0.8))+
  theme(panel.margin=unit(0,"cm"),
        panel.border=element_rect(colour="black",fill=NA,size=1.2),
        strip.background=element_rect(colour="black",size=1.2),
        panel.grid.major.x=element_blank(),
        panel.grid.minor.x=element_blank(),
        panel.grid.major.y=element_line(size=1.5,colour="grey88"),
        panel.background=element_rect(fill="white"))

enter image description here