❝3、付费文章集合有打包价哦! 详情请联系作者: ❞ 前言: 我认为学习除了接受新的知识外,真正的提高就是自己独当一面解决问题。所以每次遇到问题的时候是否应该第一反应是思考下哪里有问题,第二反应是百度检索或者bing检索一下呢。而不是点一下run之后直接给我们截图抱怨,你这个代码怎么错的。实在解决不了,可以和大家分享讨论,况且我们也计划做一个错误集合(R需要通用错误集合)。 ---KS科研分享与服务
前面我们展示了在单细胞数据中使用seurat中的VlnPlot函数做了split小提琴图,并写了一个函数(ggplot堆叠图无缝拼接(自写一个简洁堆叠小提琴图函数))。马上有爱学习的小伙伴提问了,我不做单细胞,也想这样展示两个组的基因表达怎么做,ggplot可以实现。接下来我们看看。数据代码已上传QQ群文件! ggplot做split小提琴图,需要依赖一个包ggunchained,使用它的geom_split_violin函数就可以实现效果。首先做一个常规的图:setwd('D:/KS项目/公众号文章/ggplot做split小提琴图') library(devtools) install_github("JanCoUnchained/ggunchained") library(ggunchained) library(ggplot2) library(ggpubr)
df <- read.csv('df.csv',header = T,row.names = 1) colnames(df) <- c('gene','sample','group') #常规作图,geom_split_violin函数即可 ggplot(df, aes(x = sample,y = gene, fill = group))+ geom_split_violin(colour=NA, scale = 'width')+ scale_fill_manual(values = c("limegreen", "navy"))+ theme_bw()+ labs(title = "Mmp8", y="Expression", x = "")+ theme(plot.title = element_text(hjust = 0.5), axis.text.y = element_text(size = 10, color="black"), panel.background = element_blank(), axis.text.x = element_text(size = 10, color="black",angle = 90), axis.title.y = element_text(size = 12, color="black")) 接着还可以做一下进一步的修饰,例如添加显著性,添加平均值等:
ggplot(df, aes(x = sample,y = gene, fill = group))+ geom_split_violin(colour=NA, scale = 'width')+ scale_fill_manual(values = c("limegreen", "navy"))+ theme_bw()+ labs(title = "Mmp8", y="Expression", x = "")+#标题设置 theme(plot.title = element_text(hjust = 0.5), axis.text.y = element_text(size = 10, color="black"), panel.background = element_blank(), axis.text.x = element_text(size = 10, color="black",angle = 90), axis.title.y = element_text(size = 12, color="black"))+ stat_summary(fun = mean, fun.min = function(x){quantile(x)[2]}, fun.max = function(x){quantile(x)[4]}, geom = "pointrange", size=0.3, position = position_dodge(width = 0.5), color='white')+ ylim(0,5)+ stat_compare_means(aes(group = group), label = "p.signif",label.y = 4.5)
效果还是很不错的。这样的展示不仅节约地方,图也更加清晰。好了,这就是所有内容了,希望对你学习有帮助。觉得分享有用的,点个免费的赞再走呗!
|