R语言ggplot2绘制分组箱型图和分组柱状图

需求

论文中常见的分组箱型图和分组条形图可以直观的比较方法的效果,以一个图显示多个方法在多个数据集上的AUC或AUPR。

抽象出来的数据即包含2个分类变量和1个连续变量,

不同的方法(分类变量1)在不同的条件下(分类变量2)的一个评价指标(数值型,连续变量)上的结果,可进行方法比较,也可进行条件比较。

 

 

环境

安装并加载包

library(ggplot2)

分组条形图

数据:

评价指标:AUC

方法:A、B、C、D

条件:Dataset1-5

作图函数

#读入数据文件
databar=read.csv(file='databar.csv',header = T,stringsAsFactors = F)
q1<-ggplot(data=databar, mapping=aes(x = Dataset, y = AUC,fill=Methods))+
  geom_bar(stat="identity",position=position_dodge(0.75))
q1

关于geom_bar()函数详解见https://www.jianshu.com/p/e443edd76daa

部分内容详解:

1.mapping:

x对应条形图的x轴(条件),y对应y轴数据(评价指标),fill对应图中的分类变量(方法)

2.设置stat="identity",

条形的高度表示数据的值,由aes()函数的y参数决定的

3.position参数:

默认position="stack",这时是堆叠条形图

position还可以为以下几种取值:

fill 堆叠元素,并标准化为1;dodge避免重叠;identity不做任何调整;jitter给点添加扰动避免重合;stack将图形元素堆叠起来。

为了表现为分组条形图,设置position="dodge"或position=position_dodge(0.75)表示各个矩形条之间的距离

图形美化

仅靠默认绘出的图是不够的,进行一些必要的美化才能达标嘛

调整条形图的组间间隔

并没有找到能直接调整组间间隔的方法,最终的方式是通过“调节组内间距和bar的宽度”的方式,

通过组内间隔position_dodge(0.7)>矩形条的宽度width=0.5达到的效果

geom_bar(stat="identity",position=position_dodge(0.7),width=0.5)
#width 设置矩形条的宽度

对比原图,可以看出一个数据集内,不同方法的bar之间的间隔拉开了,并且不同数据集上的结果之间的间隔也拉开了。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值