需求
论文中常见的分组箱型图和分组条形图可以直观的比较方法的效果,以一个图显示多个方法在多个数据集上的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之间的间隔拉开了,并且不同数据集上的结果之间的间隔也拉开了。