如何在ggplot分组条形图中固定组内年份条形的显示顺序?
问题:固定ggplot条形图内各组年份条形的显示顺序
我有一个名为smoking_df的数据集,包含9个职业类别、4个时间维度(2015年、2016年、2017年及所有年份汇总)对应的吸烟率数据,共36行。我需要绘制以职业为分组、对比各年份吸烟率的条形图,已经通过设置因子层级把职业分组的顺序从默认字母序调整为自定义的“高层管理至未分类”顺序,但遇到问题:ggplot默认会将每个职业组内的年份条形按递增顺序排列,我需要所有组内的条形统一按2015年、2016年、2017年、所有年份的固定顺序显示。
当前使用的绘图代码:
ggplot(data = smoking_df, aes(x = Occupation, y = Smoking_Ratio, fill = Year)) + geom_bar(stat="identity", position="dodge", colour="black") + scale_fill_brewer()
解决方法
根据Gregor Thomas的解答,将Smoking_Ratio转换为数值类型后即可解决该问题,执行以下代码:
smoking_df$Smoking_Ratio = as.numeric(as.character(smoking_df$Smoking_Ratio))
内容的提问来源于stack exchange,提问作者Lenny
相关产品推荐
相关产品推荐

