美文网首页
R可视化之美之科研绘图-31.三元图 三元相图

R可视化之美之科研绘图-31.三元图 三元相图

作者: 科研私家菜 | 来源:发表于2022-11-18 20:32 被阅读0次

本内容为【科研私家菜】R可视化之美之科研绘图系列课程

快来收藏关注【科研私家菜】


01 三元图

三元相图( ternary phase diagram)指独立组分数为3的体系,该体系最多可能有4个自由度。三元相图成分通常用浓度(或成分 )三角形( concentration/composition triangle) 表示。常用的成分三角形有等边成分三角形、等腰成分三角形或直角成分三角形。
三元图(Ternary Plot)广泛用于三个分组数据比较、筛选,通过三元图可以直观展示数据在三个分组的分布情况,高效率地筛选离群元素,同时配合方差分析等统计检验方法可以找到不同分组中显著富集的元素。


02 三元相散点图的R语言实现

在R中可以使用ggtern 包的ggtern()函数,结合ggplot2 包的geom_point()函数 可以绘制三元相散点图。使用ggtern()函 数和stat_ density_ tern ()函数,以及ggplot2 包的geom_ point()函三元相等高线图。

library(ggtern)
library(grid)
library(RColorBrewer)
data(Fragments)
arrangement = list()
for(base in c('ilr')){
  y = ggtern(Fragments,aes(Qm,Qp,M)) +
    theme_showarrows()+
    geom_point(size=3) + 
    ggtitle(sprintf("Basis: %s",base)) +
    limit_tern(.5,1,.5)
  arrangement[[length(arrangement) + 1]] = y
}
grid.arrange(grobs = arrangement,nrow=1)

效果如下:

03 三元相等高线图的R语言实现

data(Fragments)
arrangement = list()
for(base in c('ilr')){
  x = ggtern(Fragments,aes(Qm,Qp,M)) +
    stat_density_tern(geom='polygon',
                      aes(fill=..level..),
                      base=base,  
                      colour='grey50') + 
    theme_showarrows()+
    geom_point() + 
    ggtitle(sprintf("Basis: %s",base)) +
    scale_fill_gradientn(colours=c(brewer.pal(7,"Set1")[2],"white",brewer.pal(7,"Set1")[1]),na.value=NA)+
    limit_tern(.5,1,.5)
  arrangement[[length(arrangement) + 1]] = x
}
grid.arrange(grobs = arrangement,nrow=1)

效果如下:


参考资料

《R语言数据可视化之美》

关注R小盐,关注科研私家菜(溦❤工众號: SciPrivate),有问题请联系R小盐。让我们一起来学习 R可视化之美之科研绘图

相关文章

网友评论

      本文标题:R可视化之美之科研绘图-31.三元图 三元相图

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