前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跟着Nature Methods学画图:R语言ggplot2画小提琴图

跟着Nature Methods学画图:R语言ggplot2画小提琴图

作者头像
用户7010445
发布2021-03-15 09:48:00
3.9K0
发布2021-03-15 09:48:00
举报
文章被收录于专栏:小明的数据分析笔记本

今天的推文继续学习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

需要示例数据可以直接在文末留言

首先是读入数据
代码语言:javascript
复制
df<-read.csv("Single_Cell/violineplot-1.csv",header=T)
colnames(df)
head(df)
最基本的小提琴图
代码语言:javascript
复制
library(ggplot2)
#help(package="ggplot2")
ggplot(df,aes(x=cell.type,y=Complexity))+
  geom_violin()

image.png

更改主题设置,包括
  • 去掉灰色背景
  • 去掉网格线
  • 添加坐标轴的线
代码语言:javascript
复制
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

将x轴文字标签更改为垂直
代码语言:javascript
复制
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

更改坐标轴的标题,并给整幅图添加一个标题
代码语言:javascript
复制
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

填充颜色
代码语言:javascript
复制
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

叠加散点图
代码语言:javascript
复制
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这个包,使用前需要先加载

代码语言:javascript
复制
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

这样看起来比论文中的图好像好看一点

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先是读入数据
  • 最基本的小提琴图
  • 更改主题设置,包括
  • 将x轴文字标签更改为垂直
  • 更改坐标轴的标题,并给整幅图添加一个标题
  • 填充颜色
  • 叠加散点图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档