查看原文
其他

你所不知道的R-柱形图绘制细节问题!

2017-11-26 张杰 EasyCharts

我一直都挺懒的,很少写博文跟大家分享,也远没有杜雨兄R语言的水平,感觉都快被大家遗忘啦。今天我跟大家分享最近对R语言柱形图的研究。柱形图虽然很简单,但是有些细节问题,你可能没有注意到位!

柱形图用于显示一段时间内的数据变化或显示各项之间的比较情况。柱形图用于显示一段时间内的数据变化或显示各项之间的比较情况。在R ggplot2中,柱形图控制柱状图的两个重要参数是:“设置系列数据格式”中的“系列重叠(position=position_dodge())”和“分类间距(width)”。“分类间距”控制同一数据系列的柱形宽度,数值范围为[0.0,1.0];“系列重叠”控制不同数据系列之间的距离,数值范围为[-1.0, 1.0]。图3-1-1使用R语言ggplot2包的geom_bar()直接绘制的柱形图系列,包括(a) 单数据系列柱形图 (b)多数据系列柱形图 (c) 堆积柱形图 (d)百分比堆积柱形图四种常见到的类型。但是R语言绘制柱形图和条形图系列的最大潜在问题就是排序问题。

图3-1-1柱形图系列.(a)单数据系列柱形图

图3-1-2排序调整后的柱形图系列.(a)单数据系列柱形图


图3-1-1(a)和3-1-2(a)分别对应排序调整前和调整后的单数据系列柱形图。如前面所说,数据类型大致可以分为:类别型、序数型和数值型。柱形图的X轴变量一般为类别型和序数型,Y轴变量为数值型。对于X轴变量为序数型的情况,直接按顺序绘制柱形图,如图3-1-1(a)的X轴为Fair、Good、VeryGood、Premium和Ideal(一般、好、非常好、超级好、完美)的顺序。在使用R语言绘制图表中,直接在整理数据的时候,就按顺序处理数据再导入到R言语,使用ggplot2函数会默认按照表从上往下的次序绘制柱形图。最常见的序数型数据还包括时序数据,如年、月份("January"、"February"、"March"、"April"、"May"、"June"、"July"、"August"、"September"、"October"、"November"、"December")、日期等。

但是如果X轴变量为类别型的情况,一般推荐对数据进行降序进行处理后,再展示图表,如图3-1-2(a)(假定图3-1-2(a)的X轴变量为类别型)。这样,更加方便观察数据规律,确定某个类别对应的数值所在整个数据范围的位置。降序可以借助factor因子排序处理数据:

order<-sort(mydata$Price,index.return=TRUE,decreasing= TRUE)

mydata$Cut <- factor(mydata$Cut,levels = mydata$Cut[order$ix])

在这里,mydata$Cut中原来的levels为Fair、Good、VeryGood、Premium和Ideal,而使用上面的语句处理后,新的levels是根据mydata$Price降序排序的Premium、Fair、VeryGood、Good和Ideal,然后绘制图表的时候会根据mydata$Cut中levels的顺序绘制柱形数据系列,如图3-1-2(a)所示。

图3-1-3 导入的表格数据

 

附:图3-1-2(a)的代码

mydata<-data.frame(Cut=c("Fair","Good","Very      Good","Premium","Ideal"),

                         Price=c(4300,3800,3950,4700,3500))

order<-sort(mydata$Price,index.return=TRUE,decreasing      = TRUE)

mydata$Cut <- factor(mydata$Cut, levels = mydata$Cut[order$ix])

ggplot(data=mydata,aes(Cut,Price))+

  geom_bar(stat =      "identity", width =      0.8,colour="black",size=0.25,fill="#FC4E07",alpha=1)          

 

更多柱形图系列以后会跟大家方向,敬请期待:



ggplot2分面气泡图饼图

ggplot2玫瑰图案例

炫酷阶梯状图表

构造方块条形图

多维放射状流向图

ggplot2高阶案例应用

商务图表案例:仿经济学人分组漏斗图~


如需转载请联系EasyCharts团队!

微信后台回复“转载”即可!


【书籍推荐】《Excel 数据之美--科学图表与商业图表的绘制》

【必备插件】  EasyCharts -- Excel图表插件

【网易云课堂】  Excel 商业图表修炼秘笈之基础篇

【手册获取】国内首款-数据可视化参考手册:专业绘图必备


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存