使用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)]
留言
張貼留言