zoukankan      html  css  js  c++  java
  • 三元散点图

    三元散点图

    目的:绘制NMF, 细胞比例,WGCNA的相关性三元散点图

    工作路径:/media/sdc/yueyao/project/20200405_pearson

    输入文件格式

    OUT_IDSoilRootRhizosphereave_raenrichment
    OTU_10050000none
    OTU_1011000.0175020.005834none
    OTU_101500.00640100.002134none
    OTU_1016000.0262540.008751none
    OTU_10220000none
    OTU_1023000.0087510.002917none
    OTU_10240000none
    OTU_10250000none
    OTU_10260000none
    OTU_10270000none
    OTU_10290000none
    OTU_103200.00640100.002134none

    作图代码如下

    install.packages("ggtern")

    ## 加载ggtern包
    library("ggtern")

    #读入数据,存到data变量中
    data<-read.table("result.xls",header = T,sep = " ",row.names = 1)

    #查看数据框data的前6行
    head(data)

    #建立数据的映射关系,绘制三元图
    p1<-ggtern(data=data,aes(x=Root,y=Soil,z=Rhizosphere))+
     geom_point(aes(size=ave_ra,color=enrichment),alpha=0.8)
    p1

    #手动设置点的颜色,“土壤”褐色,“根际”橙色,“根”绿色,未能显著富集到的为灰色
    p2<-p1+scale_colour_manual(values = c("grey", "#f68b23","#00a070","#7e532f"))
    p2

    #尝试不同的主题
    p3<-p2+theme_minimal()+
     theme_legend_position(x = "topleft")
    p3
    p4<-p2+theme_bw()+
     theme_legend_position(x = "tr")
    p4
    p5<-p2+theme_void()+
     theme_legend_position(x = "tr")
    p5

    #保存图表为pdf格式
    ggsave("p5.pdf",width = 4.4,height = 4,units = "in")

    输出图片格式

    01

    图形计算的是每一个值占三个成分值间的比例,如果分别为1,1,1则该点的位置会出现在三角形的正中心,因为各占比例1/3。按照逆时针顺序从左至右分别表示第一个成分的比例Soil,第二个成分的比例Root,第三个成分的比例Rhizo。ave_ra表示点的大小,是三个成分的平均值,enrichment表示该OUT是否在某一成分富集。

    实际调整后的代码如下

    #安装ggtern包
    #install.packages("ggtern")

    ## 加载ggtern包
    library("ggtern")
    library("ggrepel")

    setwd("/media/sdc/yueyao/project/20200405_pearson")


    input_file <- "pearson_v7.xls"
    output_file_prefix <- "v8"

    #实际数据代码
    data<-read.table(input_file,header = T,sep = " ",row.names = 1)
    #排序
    data2 = data[order(data$cor_th,data$av_cor,decreasing=F),]

    #建立数据的映射关系,绘制三元图
    p1<-ggtern(data=data2,aes(x=NMF_Cell,y=NMF_Moudle,z=Cell_Moudle))+
     geom_point(aes(size=av_cor,color=av_cor),alpha=0.8)
    p1
    ggsave(paste(output_file_prefix,".p1.pdf",sep=""),width = 4.4,height = 4,units = "in")
    #手动设置点的颜色,“土壤”褐色,“根际”橙色,“根”绿色,未能显著富集到的为灰色
    p2<-p1+scale_colour_gradient2(low="#313695", mid="#E0F3F8",high="#A50026")
    p2
    ggsave(paste(output_file_prefix,".p2.pdf",sep=""),width = 4.4,height = 4,units = "in")

    #尝试不同的主题
    p3<-p2+theme_minimal()+
     theme_legend_position(x = "topleft")
    p3
    ggsave(paste(output_file_prefix,".p3.pdf",sep=""),width = 4.4,height = 4,units = "in")

    p4<-p2+theme_bw()+
     theme_legend_position(x = "tr")
    p4
    ggsave(paste(output_file_prefix,".p4.pdf",sep=""),width = 4.4,height = 4,units = "in")
    p5<-p2+theme_void()+
     theme_legend_position(x = "tr")
    p5

    #保存图表为pdf格式
    ggsave(paste(output_file_prefix,".p5.pdf",sep=""),width = 4.4,height = 4,units = "in")

    效果如下

    02

    python包参考路径:https://github.com/marcharper/python-ternary

  • 相关阅读:
    composer使用git作为仓储
    monolog记录日志
    lumen laravel response对象返回数据
    lumen中间件 Middleware
    AcWing 901. 滑雪
    leetcode 34. 在排序数组中查找元素的第一个和最后一个位置
    acwing 902. 最短编辑距离
    ACWING 844. 走迷宫
    leetcode 5199. 交换字符串中的元素
    AcWing 836. 合并集合
  • 原文地址:https://www.cnblogs.com/raisok/p/12652806.html
Copyright © 2011-2022 走看看