r语言 将多个boxplot集中于一图

阿里云2000元红包!本站用户参与享受九折优惠!

>setwd(“/Users/jennifer/Desktop/ph_SKIN/”)

>PH<-read.table(“ALL_PH.txt”,header = T,fileEncoding = “utf-16”)

只做一对boxplot

>library(ggpubr)

>colnames(PH)

>ggplot(PH,aes(x=department,y=M_average_forehead,color=department))+geom_boxplot()+geom_jitter()

得到

这只是一个部位的ph,如果想要将各个部位的ph绘制在一张表上,可以使用以下方法

>library(reshape2)

>PH$pregnant=NULL    # 去掉PH中一会用不到的列

>PH$age=NULL

>ph_long<-melt(PH,id.vars = c(“name”,”department”),variable.name = “parts”,value.name = “ph”)

melt(data, id.var=””, variable.name=””, value.name=””)

data是数据框(PH)

id.var=””     选定记录标识列,哪几列不动

variable.name=””    选定拉长后的属性名(列)

value.name=””      选定拉长后的属性值 (列)

melt之前:

注意⚠️melt前数据为宽数据,之后为长数据,所以melt之后的命名可以为ph_long

melt之后:

>ggplot(ph_long,aes(x=department,y=ph,color=department))   #以department 为分组填充颜色

+geom_boxplot(outlier.size = 0.3)    #离散点的大小

+facet_wrap(~parts)      #分页标准为parts

这样,基本的图形就做出来了,也可以进一步调节,使图形更加美观

下面整个全面的

>ggplot(ph_long,aes(x=department,y=ph,color=department))

+geom_boxplot(outlier.size = 0.3)

+scale_color_manual(values = c(“green”,”red”))    #自定义颜色

+facet_wrap(~parts, nrow = 1, strip.position = “bottom”)     #以parts为分页标准,将所有的boxplot集中于1行, 将parts信息放到表格下面

+theme(legend.position = “bottom”,     #图例的位置放于下面

      axis.ticks.x = element_blank(),   #x轴刻度线

      axis.text.x = element_blank(),   #x轴刻度标签属性

      strip.text.x = element_text(size=5,colour = “black”,angle = 90))

这样就能出来相对美观的图形~

https://www.jianshu.com/p/5d29f3563815

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论