绘图绘画

跟着Nature methods学作图:小提琴图+盒形图篇

2021-05-09  本文已影响0人  数据可视化艺术

大家好,今天看到nature methods中一篇关于单细胞数据挖掘的文章,发现此类文章或者其它类文章小提琴图和盒形图出现频率特别高。遂和大家分享下这篇文章Fast searches of large collections of single-cell data using scfind中的小提琴图和盒形图的代码和基因云平台的快速实现。

论文页面

image
文章链接https://www.nature.com/articles/s41592-021-01076-9
论文代码及数据https://github.com/hemberg-lab/scfind-paper-figures
附件数据:https://www.nature.com/articles/s41592-021-01076-9#Sec39
image

本次主要通过文章中的数据和相关代码复现上述文章中的fig1.d 的小提琴图,以及fig2.d中的盒形图。

image 图1 待复现的图表

数据大家可以通过上述链接下载,作者对每幅图的数据都作了清晰的标注。
首先我们看看fig1.d的小提琴图的绘制方法:

# 图例 
legend_order <- c("BCA", "MCA", "TM, 10X", "TM, FACS", "sciATACseq", "MOCA")
# 主题样式设置
main <- theme_minimal() + theme(axis.title.y = element_text(size=12), axis.title.x = element_text(size=12), text = element_text(size=12), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.background = element_blank()) 
colorcode = "Dark2"
# 读取数据
df.1d <- read.table("./data/fig1d.csv", sep = ","
                    , header = T, 
                    stringsAsFactors = F)
df.1d$atlas <- factor(df.1d$atlas, levels = legend_order)
# 开始绘图
p.1d <- ggplot(df.1d, aes(x = atlas, 
                          y = as.numeric(rho), 
                          fill = atlas)) + 
        main + theme(axis.text.x = element_blank()) + 
        guides(col = guide_legend(ncol = 2)) +
        ylab("rho")+ xlab("Atlas") + 
        scale_fill_brewer(palette = colorcode) + 
        geom_violin(trim = T) + geom_boxplot(width=0.1, fill="white")</pre>
图2 文章fig1.d 小提琴

接下来,我们继续看fig2.d的代码实现:

# 读取数据
df.2d <- read.table("./data/fig2d.csv", sep = ",", header = T, stringsAsFactors = F)
# 设置颜色
cbPalette <- c("#999999", "#E69F00", "#56B4E9", "#009E73", "#0072B2", "#D55E00", "#CC79A7")
# 开始绘图
p.2d <- ggplot(df.2d[!df.2d$no_of_genes %in% 5,], 
               aes(x = as.character(no_of_genes), 
                   y = score, fill = type)) + 
        main + xlab("Number of genes") + ylab("Score") + 
        scale_fill_manual("Score type", values = cbPalette) + 
        geom_boxplot(size = .2, notch = T, outlier.size = .2) + 
        facet_grid(. ~ query)</pre>
图3 文章fig2.d 盒形图

到此我们就满分复现了文章中的两个图表,那么如何不通过代码实现盒形图、小提琴图的快速切换呢?接下来,给大家分享下基因云(https://www.genescloud.cn)的盒形图小工具,无需编程也可以快速制作漂亮的上述图表,同时还提供多种样式的在线调整(图4所示)。

图4 基因云平台盒形图

基因云平台实现

1 准备数据

根据文章附件数据,提取下图所示数据。为了方便大家实践,基因云已贴心的整合了该示例数据,进入"盒形图"绘图页面,直接通过【文件上传→云端文件→公共数据】按照路径: Home>ref_data>nature_methods>1_violinplot,即可选择使用。

image 图5 云端数据选择

2 提交绘图

上传数据后,一键提交绘图。

图6 快速提交页面

3 参数调整

在图表调整里面,选择【图表设置→图表类型】,即可实现图3所示图形的随意切换,还可以对图表的颜色等样式进行自由设置。

图7 参数调整页面

当然,除了上述盒形图外,基因云平台还提供了"交互小提琴图",大家可以根据自己的数据选择性的进行试用。

图8 小提琴示例

今天就分享到这里了,希望以上工具对大家作小提琴图、盒形图有所帮助。

上一篇下一篇

猜你喜欢

热点阅读