柱形图一般用于反应某一范围内数据的变化和各种类之间的对比,主要分为四类单数据柱形图、多数据柱形图、堆叠柱形图、百分比堆叠柱形图。这一篇主要讲解单数据类型的柱形图,主要包括数据顺序的调整,以及细节优化。具体如下:
1.制作单数据柱形图
这里我们以类别型数据为例制作单数据柱形图,数据为两列,一列为商品类别,一列为商品类别对应的价格,构造过程如下:
mydata<-data.frame(Brand=c("Prada","Versace","Moncler","Dior","D&G"),
Price=c(20400,15000,39560,42409,23800))
数据长这样:
然后我们先直接使用ggplot的直方图函数进行作图试试效果:
使用Brand进行填充,geom_bar函数作图
ggplot(data=mydata,aes(Brand,Price,fill = Brand))+
geom_bar(stat = "identity")+
可以发现各个品牌和他们所对应的价格都展示在了柱形图上,价格最贵的为Dior。
2.顺序调整
但是有时候我们可能会感觉这种高低起伏的排列顺序会不够顺畅,所以我们可以对他们的顺序进行一个简单的调整,让价格最高的品牌在最前面让整体的图呈现为阶梯状。
在R语言中,要实现X轴变量的降序展示,需要通过控制并改变因子向量的水平实现。我们一定要先对表格或因子向量排序后,再改变其水平顺序,才会使X轴的类别顺序根据Y 轴变量的数值降序展示
order<-sort(mydata$Price,index.return=TRUE,decreasing = TRUE)
mydata$Brand <- factor(mydata$Brand, levels = mydata$Brand[order$ix])
现在数据,已经按照降序进行了排列,如下:
再次使用上面的代码作图即可:
现在柱形图内每一个柱子都按照价格高低进行了排列。
3.细节美化
现在我们对图片进行细节上的优化,主要包括柱子宽度,图例大小、以及整体的配色。
ggplot(data=mydata,aes(Brand,Price,fill = Brand))+
geom_bar(stat = "identity", width = 0.8,size=0.25,alpha=1)+
scale_color_npg()+
scale_fill_npg()
我们将柱子宽度跳到0.8,这样就增加了柱子之间的间距,图像整体上也直观了许多,图例的方块大小使用size参数调节,简单增大了一点每个方块之间的距离更加接近,最后是颜色的调整,使用了ggsci库里面的nature配色方案最终图片如下:
本篇的内容分享就到此结束了,祝愿看到这里的朋友们生活愉快!
(如有文章作图,或者数据分析需要可以私信qicong0719)