小提琴分类图

@ 小提琴图分类

这类图该怎么做呢,代码在下面

在这里插入图片描述

导入数据

library(ggplot2)
library(reshape2)
data <- read.table(inputFile, header=T,sep="\t",check.names=F,row.names=1)
x=colnames(data )[1] ##定义Xcolnames(data )[1]="Type"

数据长这个样

在这里插入图片描述

根据变量进行差异分析

geneSig=c("")
for(gene in colnames(data )[2:ncol(data )]){
	rt1=data [,c(gene,"Type")]
	colnames(rt1)=c("expression","Type")
	p=1
	if(length(levels(factor(rt1$Type)))>2){
		test=kruskal.test(expression ~ Type, data = rt1)###多元素比较
		p=test$p.value
	}else{
		test=wilcox.test(expression ~ Type, data = rt1)##两个元素比较
		p=test$p.value
	}
	Sig=ifelse(p<0.001,"***",ifelse(p<0.01,"**",ifelse(p<0.05,"*","")))
	geneSig=c(geneSig,Sig)
}
colnames(rt)=paste0(colnames(rt),geneSig)

绘图

#把数据转换成ggplot2文件
data=melt(rt,id.vars=c("Type"))
colnames(data)=c("Type","Gene","Expression")


ggplot(data,aes(x=Type,y=Expression,fill=Type)) + 
  geom_violin(trim=FALSE,color="white")+ labs(fill = 'Type')+
  geom_boxplot(width=0.2,position=position_dodge(0.9))+
  scale_fill_manual(values = c("#FF8C00", "#00FFFF",'#DC143C','#7FFF00'))+ #根据type数目设置颜色
  theme_bw()+facet_wrap(~Gene,nrow =4,ncol = 3)+###分组函数
  theme(#legend.position = 'none',
        strip.background=element_rect(colour="white",fill="white"),##上面分组名字的颜色和框颜色
        strip.text = element_text(size = 15,colour="black",family="Times"),##对分组名字字体调整
        panel.grid.major = element_blank(),panel.grid.minor = element_blank(),#不显示网格线
        panel.border = element_rect(colour = "black", fill=NA, size=1), #去除默认填充的灰色,并将x=0轴和y=0轴加粗显示(size=1)
        axis.line = element_line(colour = "black"),
        legend.title=element_text(face="italic", family="Times", colour="black"),#设置图例的总标题的字体属性
        axis.text.x=element_text(angle=20,hjust = 1,colour="black",family="Times",size=13),
        axis.title.y=element_text(family="Times",size = 20,face="plain"),#设置y轴标题的字体属性
        legend.text=element_text(face="italic", family="Times", colour="black",  #设置图例的子标题的字体属性
        xis.title.y=element_text(family="Times",size = 20,face="plain"), #设置y轴标题的字体属性
        ylab("Value")+xlab(""), #设置x轴和y轴的标题)


效果图如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值