使用R繪製三元相圖(Ternary plot)結合等高線圖(topographic map)

:::success 三元相圖是帶有三個變量的三角圖,它們通常用於化學,岩石學,礦物學,冶金學,材料科學等領域 特色為其中任一點的三變量總合為100 :::

首先準備好所需的數據格式

啟動Rstudio安裝所需的套件

## Version 1.2.1335
## coding: utf-8 
## 繪製三元相圖(Ternary plot)結合等高線圖(topographic map)
# 安裝相關套件
install.packages("AlgDesign")
install.packages('ggtern')
install.packages('ggplot2')
install.packages('RColorBrewer')
#載入相關套件
library(AlgDesign)
library(ggplot2)
library(RColorBrewer)
library(ggtern)

讀取所準備好的CSV檔

data_ggtern <- read.csv(file.choose()) #以視窗方式取得檔案位址
head(data_ggtern) #查看數據前6筆數據
## 有時候數據抬頭為中文名稱時讀取後會是亂碼
##可以利用colnames()重新命名
colnames(data_ggtern) <- c("A", "B", "C", "D")

執行程式碼繪製我們需要的三元相圖

p <- ggtern(data = data_ggtern,
         aes(
           x = A,
           y = B,
           z = C,
           value = data_ggtern$D
         )) + theme_bw() +
  geom_interpolate_tern(
    data = data_ggtern,
    mapping = aes(value = data_ggtern$D, color = ..level..),
    method = lm,
    #等高線趨勢資料計算
    formula = expand.formula(value ~ cubicS(x, y) + quad(x, y)),
    base = "identity",
  ) +
  #添加資料點
  geom_point(size = 2, aes(color = data_ggtern$D)) +
  #設定顏色漸層
  scale_color_gradient(low = 'green', high = 'red') +
  labs(fill = "D")
p

參考資料 > ggtern: ternary diagrams in R: What is ggtern? >>Ternary Interpolation / Smoothing >>> [name=Nicholas Hamilton]

>ggtern contour plot in R - Stack Overflow

>Plotting ternary diagrams with ggtern >> [name=Hartmann, K., Krois, J., Waske, B. (2018)]

留言

這個網誌中的熱門文章

Excel_統計_簡單線性回歸_檢量線

軟體分享_Imagej_顆粒計算_孔隙率計算_孔徑分布

分享_最美的心智圖軟體_Coggle_完整教學