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

浏览: 1716

我一直都挺懒的,很少写博文跟大家分享,也远没有杜雨兄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语言绘制柱形图和条形图系列的最大潜在问题就是排序问题。

image.png

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

image.png

图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)所示。

image.png

附:图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)          

 

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

image.png

image.png

推荐 0
本文由 EasyCharts 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册