【问题标题】:customizing grid for dotchart in ggplot2?在ggplot2中为dotchart自定义网格?
【发布时间】:2013-03-16 18:43:57
【问题描述】:

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

除了让水平线更粗,以便更明显。

有没有办法在 ggplot2 中做到这一点?

【问题讨论】:

  • 你试过什么?如果lattice 已经做了你想做的事情,你为什么还要在ggplot2 中这样做?
  • @agstudy,对于问题的第二部分,我只想说,我想知道该怎么做.. :)
  • @Arun 如果你证明你可以用lattice(至少)做到这一点,这是一个很好的理由。
  • 另外,它为我们提供了一个工作示例。现在我们必须组成一个数据集。

标签: r plot ggplot2 lattice


【解决方案1】:

一些可以使用的示例数据。

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"))

【讨论】:

    猜你喜欢
    • 2013-09-04
    • 2014-01-30
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 2013-04-08
    • 2013-02-07
    相关资源
    最近更新 更多