Ggplot2在x轴上不断增加年终变量.5 [英] ggplot2 keeps adding .5 at end of Year variable on x axis

查看:17
本文介绍了Ggplot2在x轴上不断增加年终变量.5的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我尝试制作一个分组条形图,Year在x轴上,Number在y轴上,按Nationality分组,按Municipality分面。以下是数据(2017年位于中间,因此未显示)。

> head(pres_munic)
  Year              Municipality Nationality Number
1 2016        Tapachula, Chiapas  Salvadoran   2141
2 2016        Acayucán, Veracruz  Salvadoran   4697
3 2016 Tuxtla Gutiérrez, Chiapas  Salvadoran   2327
4 2016           Centro, Tabasco  Salvadoran   1811
> tail(pres_munic)
     Year                                   Municipality Nationality Number
1328 2018                  San Pedro Tapanatepec, Oaxaca    Honduran    365
1329 2018                             Huehuetán, Chiapas    Honduran    417
1331 2018                               Iztapalapa, CDMX    Honduran    247
1332 2018                             Saltillo, Coahulia    Honduran    352

由于某些原因,ggplot2在一个刻度上一直将x轴设置为"2016",然后在下一个刻度上设置为"2016.5",依此类推,直到2018.5。我不知道它为什么这样做,因为在我的年份变量中,我在任何一年之后都没有.5。Here是我的粗略图,在底部显示了奇怪的轴。

我的代码如下,如果乱七八糟的话很抱歉。

ggplot(pres_munic, aes(Year, Number)) + facet_wrap(~ Municipality) + geom_bar(aes(fill = Nationality), 
                                          width = 0.4, position = position_dodge(width=0.5), stat="identity") +  
  theme(legend.position="top", legend.title = 
      element_blank(),axis.title.x=element_blank(), 
    axis.title.y=element_blank())

有人知道我怎样才能改变这一点吗?或者至少让中轴线只显示2016、2017、2018年?提前感谢!

推荐答案

因为Year是数值型的,所以ggploy会将其解释为可以用小数点分割的连续数据。为防止出现这种情况,我们可以使用scale_x_continuous

指定刻度线的位置
ggplot(pres_munic, aes(Year, Number)) + 
  facet_wrap(~ Municipality) + 
  geom_bar(aes(fill = Nationality), width = 0.4, position = position_dodge(width=0.5), stat="identity") + 
  scale_x_continuous(breaks = 0:2100) +
  theme(legend.position="top", legend.title = 
      element_blank(),axis.title.x=element_blank(), 
    axis.title.y=element_blank())

这篇关于Ggplot2在x轴上不断增加年终变量.5的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆