R中的qplot条形图有两个问题

时间:2014-12-18 15:24:23

标签: r ggplot2 axis-labels

我在qplot中创建条形图,(R中的ggplot2函数)并且有两个问题。

  1. 当我将x轴刻度值旋转90度时,它们不再位于列和刻度线下方的中心位置。这似乎只是一个问题,只有几个列,但我使用facet-wrap创建多个12列的图,然后偏移变得非常明显(比例值然后位于列之间) )。

  2. x轴值是日期作为因子。如何按日期而不是按字母顺序排列列。如果我将日期转换为日期格式,他们将正确订购,但会在我不想要的连续日期范围内展开。当然,这可能是任何类型的x轴数据的问题。

  3. 这里有一个虚拟数据集和R代码来说明问题。

    date <- c("Oct 2006","Feb 2007","Nov 2007","Feb 2008","Oct 2008","Feb 2009","Nov 2009")
    count <- c(23,54,12,78,23,34,12)
    df <- data.frame(date,count)
    
    qplot(x=date, y=count, data=df, geom="bar", stat="identity") + theme (axis.text.x = element_text(angle = 90,))
    

1 个答案:

答案 0 :(得分:1)

  1. 为了方便起见,将日期字符串转换为正确的日期格式,然后您不必担心订购它们yoruself

  2. 默认情况下,垂直对齐为1,将刻度标签放在刻度的右边,0放在左边,.5放在居中。

  3. 我还建议切换到ggplot而不是qplot

    date <- c("Oct 2006","Feb 2007","Nov 2007","Feb 2008","Oct 2008","Feb 2009","Nov 2009")
    df <- data.frame(
      count = c(23,54,12,78,23,34,12),
      date = factor(d <- as.Date(paste0('01 ', date), '%d %b %Y'),
                    labels = format(d, '%b %Y'))
      )
    
    
    library(ggplot2)
    qplot(x=date, y=count, data=df, geom="bar", stat="identity") + 
      theme (axis.text.x = element_text(angle = 90, vjust = .5))
    

    enter image description here