R语言多数据柱形图

多数据柱形图用于比较一个类别或多个类别,在不同数值状态下的表现。需要根据数据类型的不同做一些数据处理工作包括数据合并数据排序。

知识点:sort()、melt()

数据展示

本次所使用的数据如下:

mydata<-read.csv("MultiColumn_Data.csv",check.names=FALSE) 

在这里插入图片描述

数据处理

现在我们按照数据的年份,将数据变为新的三列,分别为类别列:Catergory、年份列:year、值列:value。

首先对需要得到的数据简单规划一下,年份列放在第二列降序排列,所以需要用到sort函树,并将decreaseing设置为TRUE,

处理代码如下:

order<-sort(mydata$ "1996",index.return=TRUE,decreasing = TRUE) #根据“1996” 排序 
mydata$Catergory<- factor(mydata$Catergory, levels = mydata$Catergory[order$ix])  
#根据“1996”的排序结果设定因子向量的水平顺序 
mydata<-melt(mydata,id.vars='Catergory')  
names(mydata) <- c('Catergory','year','value')#更名

在sort函数中index.return是个逻辑值,设置是否显示排序序列对应的元素值在未排序前序列中的对应位置索引,默认为False。因为我们需要他的一个索引值所以设置为TRUE.
第二行中,我们需要改变一下类别列的值,因为按年份分列原先的三行数据会因为两个年份均有对应会变为六行。factor函数可以将数据转化为因子型方便分类和排序,需要将第一行代码得到的索引值作为序号。
第三行代码使用melt函数对数据进行合并,其中id.var函数为不进行合并的列,其他两列会被合并成新的列,一列为纯年份,一列为值。
最后使用names函数改一下列名即可。

更改后数据样式如下:
在这里插入图片描述

绘图

绘图的主体代码与单数据类型相似(详情可以参考上一篇文章:单数据柱形图)。

ggplot(data=mydata,aes(Catergory,value,fill=year)) +
  geom_bar(stat="identity", color="black", position=position_dodge(),width=0.7,size=0.25)+
  scale_color_npg()+
  scale_fill_npg()

结果如下:
多数据柱形图
其中position=position_dodge()可以将柱子分成左右两个,如果不设置的话就是下面的堆叠形式。
在这里插入图片描述
(如果大家有关于论文数据图的各种疑问欢迎私信讨论qicong0719)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值