我在qplot中创建条形图,(R中的ggplot2
函数)并且有两个问题。
当我将x轴刻度值旋转90度时,它们不再位于列和刻度线下方的中心位置。这似乎只是一个问题,只有几个列,但我使用facet-wrap创建多个12列的图,然后偏移变得非常明显(比例值然后位于列之间) )。
x轴值是日期作为因子。如何按日期而不是按字母顺序排列列。如果我将日期转换为日期格式,他们将正确订购,但会在我不想要的连续日期范围内展开。当然,这可能是任何类型的x轴数据的问题。
这里有一个虚拟数据集和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,))
答案 0 :(得分:1)
为了方便起见,将日期字符串转换为正确的日期格式,然后您不必担心订购它们yoruself
默认情况下,垂直对齐为1,将刻度标签放在刻度的右边,0放在左边,.5放在居中。
我还建议切换到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))