R语言 barchart条形图实现示例

今天就给大家介绍下直方图(histogram)的“好兄弟”——条形图(bar chart)。
假设小仙同学现在要帮一家书店用图形展示2018年最受大家欢迎的
书目,数据如下图。

在这里插入图片描述

条形图画出来还挺好看,可是跟小仙想象中的可不一样。明明我的数据是按照销量从高到低排列的,为什么画出来却是按照字母顺序排列的呢?

在这里插入图片描述

使用了对因子进行排序的函数reorder()之后,就变成了下图这个样子,跟想象中的还是不一样。

在这里插入图片描述

在网上搜了半天教程,也没有找到简单的方法进行对因子降序排序,于是小仙同学就大胆的在排序向量参数前面加了个减号,竟然没有报错成功了,意外的惊喜(有时候大胆尝试也会有惊喜哦,网上找教程还要先看懂别人的代码,有时候发现看半天看懂了对自己并没有帮助)。

在这里插入图片描述

具体的作图过程如下。

 

Step1. 绘图数据的准备

首先还是要把你想要绘图的数据调整成R语言可以识别的格式excel中保存成csv格式。

 

Step2. 绘图数据的读取

data<-read.csv(“your file path”, header = T) 

 

Step3. 绘图所需package的调用

library(ggplot2)
data$书名<-factor(data$书名)
data$书名<-reorder(data$书名,-data$销量)

 

Step4. 因子水平排序

data$书名<-factor(data$书名)
data$书名<-reorder(data$书名,-data$销量)

在这里插入图片描述

 

Step5. 绘图

p<-ggplot(data,aes(x=书名,y=销量,fill=书名)) + 
 geom_bar(stat="identity",width = 0.5) +
 theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9))+
 xlab("销量排行前十")+theme(legend.position="none")+
 scale_y_continuous("销量",breaks = c(0,200000,400000,600000),labels = c("0","200000","400000","600000"))
p

在这里插入图片描述

更新:有同学问怎么能把销量在400000的柱子画成同一种颜色,小仙今天终于克服懒惰来更新了
其实也很简单,最主要的是要再加一列标签来表示颜色的分类

添加标签列

新的作图代码

新的作图代码,前面的都跟之前一样,晓得吧

效果图

新的效果图

如果按照我的教程画不出来,麻烦请告诉我

看别人的教程画不出来可能是你的问题,看我的教程画不出来一定是我的问题

更多关于R语言bar chart条形图绘图的资料请关注编程宝库其它相关文章!

导出带有透明度的高清图有更好的办法:再Rstudio里调整好透明度之后,直接导出pdf,然后用Adobe illustrator打开pdf文件,直接导出png或jpeg就可以啦 更新前原文今 ...