【问题标题】:Changing x axis label in GGPlot2在 GGPlot2 中更改 x 轴标签
【发布时间】:2018-04-10 17:21:54
【问题描述】:

我有一个 r 数据集,其中包含跨月的金钱支出,并且还按年份分组。

Year|Mth_Year|Mth_Spend
2004|01-2004|42507163
2004|02-2004|3377592
2006|10-2006|3507636
2006|11-2006|4479139
2006|12-2006|2439603

我需要显示每月信息(按年份分组),以便进行一些快速比较。

我正在使用 ggplot、geom_bar 选项来显示每月支出。下面是我使用的代码。

ggplot(data=yearly_spending,aes(x=Year,y=Mth_Spend,fill=Mth_Year))+
  geom_bar(stat="identity",color="black",position=position_dodge())+
  theme(axis.text.x=element_text(angle=90,hjust=1))

当我使用此代码时,条形图开始显示。但在 X 轴中,仅显示年份(2004、2005 和 2006)。我可以得到月份也显示在年份之上吗?年份可以水平显示,而月份可以垂直放置。

【问题讨论】:

  • 我无法重现您的错误,所有年份都使用您的代码在 x 轴上很好地显示。你真的应该与dput()分享你的数据。
  • 对不起,如果我没有说清楚。年份出现在 x 轴上。我想要的是对于每个条,我希望 Mth_Year 值出现在它的下方。这样我就知道每个酒吧是哪个月份的。目前每个月都有一个唯一的颜色条,颜色代码和月份显示在左侧作为图例。
  • Mth_Year 变量的格式更改为datePOSIX。请参阅lubridate 包。

标签: r ggplot2


【解决方案1】:

感谢您的所有建议。使用 scales 包和 lubridate 将字符串转换为日期,我可以解决这个问题。

ggplot(data=monthly_spend_catwise,aes(x=Mth_Year,y=TotSpending,fill=Type))+
scale_x_date(labels=date_format("%m-%Y"),date_breaks = "1 month")+
theme(axis.text.x=element_text(angle=45,hjust=1,vjust=0.5))+
geom_bar(stat="identity",color="black",position=position_dodge())

我已使用以下代码将日期格式化为 Mth_Year(而不是 01-2004,将其设置为 01-01-2004)。

spending$Mth_Year <- as.Date(paste("01",spending$Mth_Year,sep="-"),"%d-%m-%y")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 2018-08-06
    • 2013-12-30
    • 2017-08-16
    • 1970-01-01
    相关资源
    最近更新 更多