今天的推文继续学习A single-cell atlas of the peripheral immune response in patients with severe COVID-19论文中的代码。今天推文的主要内容是介绍如何使用R语言绘制散点图并且添加拟合曲线和置信区间
这篇论文是在简书 土豆学生信 分享的内容看到的。简书的链接是 https://www.jianshu.com/p/bbf9cb13b41a
论文是
image.png
论文对应的代码是公开的 https://github.com/ajwilk/2020_Wilk_COVID
image.png
今天重复的内容是论文中的 补充材料Fig9 小提琴图
image.png
数据格式如下
image.png
需要示例数据可以直接在文末留言
df<-read.csv("Single_Cell/violineplot-1.csv",header=T)
colnames(df)
head(df)
library(ggplot2)
#help(package="ggplot2")
ggplot(df,aes(x=cell.type,y=Complexity))+
geom_violin()
image.png
ggplot(df,aes(x=cell.type,y=Complexity))+
geom_violin()+
theme(panel.grid = element_blank(),
panel.background = element_blank(),
axis.line = element_line())
image.png
ggplot(df,aes(x=cell.type,y=Complexity))+
geom_violin()+
theme(panel.grid = element_blank(),
panel.background = element_blank(),
axis.line = element_line(),
axis.text.x = element_text(angle=90,hjust = 1,vjust=0.5))
image.png
ggplot(df,aes(x=cell.type,y=Complexity))+
geom_violin()+
theme(panel.grid = element_blank(),
panel.background = element_blank(),
axis.line = element_line(),
axis.text.x = element_text(angle=90,hjust = 1,vjust=0.5),
plot.title = element_text(hjust=0.5))+
labs(x=NULL,
y=NULL,
title = "Complexity")
image.png
ggplot(df,aes(x=cell.type,y=Complexity))+
geom_violin(aes(fill=cell.type),show.legend = F)+
theme(panel.grid = element_blank(),
panel.background = element_blank(),
axis.line = element_line(),
axis.text.x = element_text(angle=90,hjust = 1,vjust=0.5),
plot.title = element_text(hjust=0.5))+
labs(x=NULL,
y=NULL,
title = "Complexity")
image.png
ggplot(df,aes(x=cell.type,y=Complexity))+
geom_violin(aes(fill=cell.type),show.legend = F)+
theme(panel.grid = element_blank(),
panel.background = element_blank(),
axis.line = element_line(),
axis.text.x = element_text(angle=90,hjust = 1,vjust=0.5),
plot.title = element_text(hjust=0.5))+
labs(x=NULL,
y=NULL,
title = "Complexity")+
geom_jitter(size=0.5)
image.png
这样的话论文中的图就复现出来了。上图叠加的散点图是矩形的,最近看到一个函数
geom_sina()
可以让散点图也以小提琴的形状显示,我们试一下用这个函数的效果,这个函数来自ggforce这个包,使用前需要先加载
library(ggforce)
ggplot(df,aes(x=cell.type,y=Complexity))+
geom_violin(aes(fill=cell.type),show.legend = F)+
theme(panel.grid = element_blank(),
panel.background = element_blank(),
axis.line = element_line(),
axis.text.x = element_text(angle=90,hjust = 1,vjust=0.5),
plot.title = element_text(hjust=0.5))+
labs(x=NULL,
y=NULL,
title = "Complexity")+
geom_sina(size=0.1,alpha=0.2)
image.png
这样看起来比论文中的图好像好看一点