微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R:调整条形图上刻度之间的间距

如何解决R:调整条形图上刻度之间的间距

我需要重新创建一个用 R 生成并随后用 Inkscape 编辑的图表。我想尽可能多地使用 R。这是图表:

enter image description here

图表中的一些文本标签我稍后会用 Inkscape 添加。我的问题在于蜱虫。我决定使用没有轴的 barplot() 并将它们与 axis() 分开添加。如您所见,条形之间有间距。我只是不知道如何为 x 轴上的刻度设置间距,以便用条形调整它们。现在,蜱虫正在从中心脱落。这是我的代码

mwe <- data.frame(month=c("Dec 2007","Jan 2008","Feb 2008","Mar 2008","Apr 2008","May 2008","Jun 2008"),job_difference_in_thousands=c(70,-10,-50,-33,-149,-231,-193),color=c("darkred","darkred","darkred"))
                 
barplot(height=mwe$job_difference_in_thousands,axes=F,col=mwe$color,border = NA,space=0.1,main="Grafik X_1 NEW JOBS IN THE UNITED STATES",cex.main=0.75,ylim=c(-800,600),)
axis(1,pos=0,lwd.tick=0,labels=F,line=1,outer=TRUE)
axis(1,at=0:6+0.5,labels=FALSE,lwd=0,lwd.tick=1)
axis(1,labels=mwe$month,cex.axis=0.65,lwd=0)
axis(2,at=seq(-800,600,by=200),las=2,lwd.tick=1)

reprex package (v0.3.0) 于 2020 年 12 月 28 日创建

解决方法

R 会在您调用 barplot 时返回条形中点的位置。因此,只需存储条形图的返回值并将其用作刻度位置居中即可。

mwe <- data.frame(month=c("Dec 2007","Jan 2008","Feb 2008","Mar 2008","Apr 2008","May 2008","Jun 2008"),job_difference_in_thousands=c(70,-10,-50,-33,-149,-231,-193),color=c("darkred","darkred","darkred"))
                 
bar_pos <- barplot(height=mwe$job_difference_in_thousands,axes=F,col=mwe$color,border = NA,space=0.1,main="Grafik X_1 NEW JOBS IN THE UNITED STATES",cex.main=0.75,ylim=c(-800,600),)
axis(1,pos=0,lwd.tick=0,labels=F,line=1,outer=TRUE)
axis(1,at=bar_pos,labels=FALSE,lwd=0,lwd.tick=1)
axis(1,labels=mwe$month,cex.axis=0.65,lwd=0)
axis(2,at=seq(-800,600,by=200),las=2,lwd.tick=1)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。