美文网首页绘图绘画
跟着Nature methods学作图:小提琴图+盒形图篇

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

作者: 数据可视化艺术 | 来源:发表于2021-05-09 14:45 被阅读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 小提琴示例

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

    相关文章

      网友评论

        本文标题:跟着Nature methods学作图:小提琴图+盒形图篇

        本文链接:https://www.haomeiwen.com/subject/wegmdltx.html