我正在尝试使用我的 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,但它不会移动到任何地方。 I also looked at this page其中详细介绍了每个元素,但无法使其移动。
有什么想法吗?只是为了确保您理解我的问题:正确的情节看起来像最后一个,除了 x 轴名称(即 Datsun 710 等)将更接近条形图。 y 轴也一样。
最佳答案
您可以使用 scale_y_discrete
的 expand
参数:
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))
关于r - 将 x 轴文本更靠近 ggplot2 上的条形图条(覆盖背景面板),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34668913/