前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言作图——Beeswarm plot

R语言作图——Beeswarm plot

作者头像
一只羊
发布2022-04-19 10:20:18
4140
发布2022-04-19 10:20:18
举报
文章被收录于专栏:生信了生信了

今天...

当小仙又打下"今天"这两个字的时候,小时候每天一篇日记的恐惧好像又回来了,过去这么久,我的文学功底果然没有一点长进!

今天给大家分享的图来自于Nature Biotechnology上的一篇文章。Nature系列的文章就不用多说了,无数科研人心中的神刊,一篇Nature文章需要耗费大量的心血和经费。不过小仙想提醒大家一下,当你中了Nature,除了高兴之外还要留意一下,文章发表还要再花一笔巨款。如果选择OA发表,版面费是€9500,换成人民币要66880元,不得不说这是个很吉利的数字啊,哈哈。有意思的是,Nature官方也给了解释,为什么他们的版面费会比一般的期刊贵这么多,大概就是他们收到的稿件太多,拒稿花费了大量的精力。小仙只有一个评价,暴利且傲娇。希望有一天咱们国内也能有个这样的期刊。

回归正题,要模仿的图如下:

Step1. 绘图数据的准备

首先还是要把你想要绘图的数据调整成R语言可以识别的格式, 在excel中保存成csv格式。数据的格式如下图:

Step2. 绘图数据的读取

代码语言:javascript
复制
data <- read.csv(“your file path”, header = T) 

Step3.绘图所需package的调用

代码语言:javascript
复制
library(reshape2)
library(ggplot2)
library(ggbeeswarm)  ## 调用之前先安装install.packages("ggbeeswarm")

Step4.绘图

先画出普通的蜜蜂图

代码语言:javascript
复制
df <- melt(data) # 宽数据变成长数据
p1 <- ggplot(df, aes(x = variable, y = value)) +
      geom_beeswarm() 
p1

调整点的分布

代码语言:javascript
复制
p2 <- ggplot(df, aes(x = variable, y = value)) +
      geom_beeswarm(cex = 2, priority = "descending")
p2

手动指定颜色

代码语言:javascript
复制
p3 <- ggplot(df, aes(x = variable, y = value, color = variable)) +
      geom_beeswarm(cex = 2, priority = "descending") +
      scale_color_manual(values = c("#AF0F11", "#3372A6", "#367B34", "#7F4288", 
                                "#D16800", "#D9D92D", "#976C53"))
p3

转换x轴和y轴

代码语言:javascript
复制
p4 <- ggplot(df, aes(x = variable, y = value, color = variable)) +
  geom_beeswarm(cex = 2, priority = "descending") +
  scale_color_manual(values = c("#AF0F11", "#3372A6", "#367B34", "#7F4288", 
                                "#D16800", "#D9D92D", "#976C53")) +
  coord_flip()
p4

手动调整x轴和y轴

代码语言:javascript
复制
df$variable <- as.factor(df$variable)
level <- levels(df$variable)
p5 <- ggplot(df, aes(x = variable, y = value, color = variable)) +
      geom_beeswarm(cex = 2, priority = "descending") +
      scale_color_manual(values = c("#AF0F11", "#3372A6", "#367B34", "#7F4288", 
                                    "#D16800", "#D9D92D", "#976C53")) +
      scale_y_continuous(position = "right") +
      coord_flip() + scale_x_discrete(limits = rev(level)) + 
      theme(axis.line = element_line(colour = "black"),
          panel.background = element_blank(),
          axis.ticks = element_line(),
          axis.text = element_text(color = "black")) + 
      labs(x = " " , y = "Gene expression")
p5

改变点的形状

代码语言:javascript
复制
df$variable <- as.factor(df$variable)
level <- levels(df$variable)
p6 <- ggplot(df, aes(x = variable, y = value, color = variable)) +
  geom_beeswarm(cex = 2, priority = "descending", shape = 23) +
  scale_color_manual(values = c("#AF0F11", "#3372A6", "#367B34", "#7F4288", 
                                "#D16800", "#D9D92D", "#976C53")) +
  scale_y_continuous(position = "right") +
  coord_flip() + scale_x_discrete(limits = rev(level)) + 
  theme(axis.line = element_line(colour = "black"),
        panel.background = element_blank(),
        axis.ticks = element_line(),
        axis.text = element_text(color = "black")) + 
  labs(x = " " , y = "Gene expression")
p6

通过EPS导出的高清图

(图上看起来没有那么高清,应该是图片上传时被压缩,不过能看出点的形状更清晰、规则)

参考文献:Enhanced detection of minimal residual disease by targeted sequencing of phased variants in circulating tumor DNA, Nature Biotechnology, 2021

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

本文分享自 生信了 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档