R语言与医学统计图形-【12】ggplot2几何对象之条图
ggplot2绘图系统——几何对象之条图(包括误差条图)
1.条图
格式:
geom_bar(mapping = , data = , stat = 'count', #统计变换默认计数 position = 'stack', #默认堆栈 width = , #条形宽度 binwidth = , na.rm = FALSE, show.legend = , inherit.aes = TRUE)
positon:
- dodge并排
- fill堆叠填充标准化为1
- stack堆栈
- identity不做调整
- jitter点扰动
前四种排列方式分别如下图:
条形含义。
#默认对class分类变量计数 ggplot(mpg,aes(class))+geom_bar() #展示另一个变量的计数 ggplot(mpg,aes(class))+geom_bar(aes(weight=displ))+ ylab("count on displ")
自定义条图颜色。
p <- ggplot(dsmall,aes(x=color,fill=cut)) p+geom_bar(position = 'dodge')+scale_fill_brewer(type = 'qual')
scale_fill_brewer
标度函数:
sale_fill_brewer(..., type='seq', palette=1, #色系 direction=1) #取色方向
type的三种类型与RColorRrewer包中调色板函数一致:seq连续型、div极端型、qual离散型。
scale_fill_brewer
与scale_fill_gradient
的区别是前者通常针对离散型数据,后者针对连续型数据。
2.误差条图
有专门的几何对象,而非通过参数。
geom_crossbar #绘制盒形 geom_errorbar #绘制误差条图 geom_linerange #绘制一条线段 geom_pointrange #绘制点线段 geom_errorbarh #水平误差条图 horizontal
geom_errorbar示例(与geom_bar搭配)。
dff <- data.frame(mean_value=c(18,20,23,16,24,15), group=factor(LETTERS[1:6]), sd_value=c(1.4,1.7,2.1,1.2,1.9,1)) #error_bar上限下限 dff$lower <- with(dff,mean_value - 1.5*sd_value) dff$upper <- with(dff,mean_value + 1.5*sd_value) p <- ggplot(dff,aes(group,mean_value))+ geom_bar(position = 'dodge',fill='sky blue', stat = 'identity') p+geom_errorbar(aes(ymin=lower,ymax=upper), position = 'dodge',width=0.2, color='red')
geom_pointrange示例。
pp <- ggplot(dff,aes(group,mean_value)) pp+geom_pointrange(aes(ymin=lower,ymax=upper), color='red',size=1.5, fatten = 4) #点的大小
geom_errorbarh示例。
gp <- ggplot(dff,aes(x=mean_value,y=group)) #注意x和y互换了 gp+geom_errorbarh(aes(xmin=lower,xmax=upper), height=0.2,color='blue')+ #height定义errorbar两端高度 geom_point(color='black',size=2.5)