我正在尝试使用我的ggplot2图表上建议的一些好的实践示例,但我坚持的一件事是如何将x轴文本移动到更靠近条形的位置.这就是我的意思:
car.names <- rownames(mtcars) qplot(car.names[1:3],mtcars$wt[1:3],geom="bar",stat="identity") + geom_text(aes(y=mtcars$wt[1:3]),label=paste(mtcars$wt[1:3]),size=10,hjust=0.54,vjust=1.5,color="white")
如果我使用此代码,这是我将得到的情节:
大!我可以看到text.axis(Datsun 710等)与这个灰色背景对齐.但是现在考虑以下函数来编辑网格以及对文本大小的一些调整等:
science_theme = theme( panel.background=element_blank(), axis.line=element_blank(), text = element_text(size=25, family="Interstate",colour='grey'), axis.text.x = element_text(hjust = 0.5,vjust=0.3, size=25), axis.text.y = element_blank(), axis.ticks = element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank())
现在我用我的新主题调用相同的函数:
qplot(car.names[1:3],mtcars$wt[1:3],geom="bar",stat="identity") + geom_text(aes(y=mtcars$wt[1:3]),label=paste(mtcars$wt[1:3]),size=10,hjust=0.54,vjust=1.5,color="white") + science_theme
这就是我接下来要做的事情:
漂亮.然而问题是现在条和标签之间的恼人的白色空间.我期望在设置element_blanks()时,情节会理解灰色区域不再存在,因此将其向上推.
我试图在axis.text对齐上使用vjust但它不会移动到任何地方.我还查看了这个页面,其中详细介绍了每个元素,但无法让它发生变化.
有任何想法吗?只是为了确保你理解我的问题:正确的情节将看起来像最后一个,除了x轴名称(即Datsun 710等)将更接近条形.y轴相同.
您可以使用以下expand
参数scale_y_discrete
:
qplot(car.names[1:3],mtcars$wt[1:3],geom="bar",stat="identity") + geom_text(aes(y=mtcars$wt[1:3]),label=paste(mtcars$wt[1:3]),size=10,hjust=0.54,vjust=1.5,color="white") + science_theme + scale_y_discrete(expand=c(-0.5,0))