数据可视化 -----ggplot2绘制箱线图叠加散点图和连线
数据可视化---------ggplot2绘制箱线图叠加散点图和连线
准备输入文件
这里提供示例输入文件样式:
sample percent group
Cancer 0.10991479 1
Cancer 0.196776537 2
Cancer 0.163551093 3
Cancer 0.089305767 4
Cancer 0.629499967 5
Health 0.306427109 1
Health 0.139110906 2
Health 0.24460004 3
Health 0.272342955 4
Health 0.362441377 5
代码如下所示:
Data=read.table("Bact.txt",header = T) ##读文件
library(ggplot2)
library(scales) ##如需将坐标轴以百分比的形式展示需要是用这个包
p=ggplot(data=Data,aes(x=sample,y=percent))
pp=p+geom_boxplot(color="black") ##这里先绘制箱线图
pp_point=pp+geom_point(aes(colour=sample,shape=sample),size=4) ##在箱线图的基础上叠加散点图
pp_line=pp_point+geom_line(aes(group=group) ,size=0.8,colour="#9C9C9C") ##叠加线图,根据定义的group设置连线
ppp=pp_line+scale_color_manual(values=c(Cancer="#EE0000",Health="#0000EE"))+scale_shape_manual(values=c(Cancer=16,Health=16))+theme_bw()+theme(legend.text = element_text(colour = "black",size=13))+theme(legend.title = element_text(colour = "black",size=13))+labs(y="Percent")+theme(axis.title.x=element_text(size=15,color="black",hjust=0.5),axis.title.y=element_text(size=15,color="black",hjust=0.5))+theme(plot.title=element_text(size=15,hjust=0.5,vjust=0.5))+theme(axis.text.x = element_text(colour = "black",size = rel(1.5)))+theme(axis.text.y = element_text(colour = "black",size = rel(1.5)))+scale_y_continuous(labels = scales::percent) ##设置点的形状、颜色及坐标轴标签的字体大小,以及自定义显示的标签和y轴以百分比的形式展示
全部设置完成之后的图形如下所示: