如何使用 ggtern 绘制均值

How to plot the means using ggtern

我想在 ggtern 图上绘制数据集的均值。

我从 ade4 库中找到了 triangle.plot,但我想使用 ggtern 做同样的事情(修改所有设置会更容易)。我看到 geom_crosshair_tern() 但无法适应它。

library(ade4)
data(euro123)
tot <- rbind.data.frame(euro123$in78, euro123$in86, euro123$in97)
row.names(tot) <- paste(row.names(euro123$in78), rep(c(1, 2, 3), rep(12, 3)), sep = "")
triangle.plot(tot, addmean=TRUE,show.position = FALSE)

以下内容可以帮助您入门:

library(ggtern)
library(plyr)
df.tot = tot
df.mu = as.data.frame(t(colMeans(tot)))
ggtern(data=df.tot,aes(pri,ter,sec)) + 
  geom_point() +
  geom_crosshair_tern(data=df.mu) +
  geom_point(data=df.mu,color='red') + 
  geom_label(data=100*df.mu,
             aes(
               y = ter - 5,
               label=sprintf("P=%.1f, S=%.1f, T=%.1f",pri,sec,ter)
             ),
             size=3,
             color='red'
             ) + 
  theme_bw() +
  theme_showarrows() + 
  limit_tern(0.8,0.5,0.7) +
  labs(
    x = 'Pri',xarrow='Primary',
    y = 'Ter',yarrow='Tertiary',
    z = 'Sec',zarrow='Secondary'
  )