-1

我正在尝试使用 ggtern 生成三元图。

对于 x、y 和 z 变量,我的数据范围为 0 - 1000。我想知道是否可以将轴长度扩展到 100 以上来表示我的数据。

4

2 回答 2

2

@Nevrome 在正确的道路上,您的点仍将被绘制为“成分”,即浓度总和为单位,但您可以更改轴的标签,以指示从 0 到 1000 的范围。

library(ggtern)
set.seed(1)
df = data.frame(x = runif(10)*1000,
                y = runif(10)*1000,
                z = runif(10)*1000)
breaks = seq(0,1,by=0.2)
ggtern(data = df, aes(x, y, z)) + 
  geom_point() +  
  limit_tern(breaks=breaks,labels=1000*breaks)
于 2016-04-16T09:01:48.550 回答
1

我认为使用 ggtern 没有直接的解决方案。但一个简单的解决方法可能如下所示:

library(ggtern)

df = data.frame(x = runif(50)*1000,
                y = runif(50)*1000,
                z = runif(50)*1000,
                Group = as.factor(round(runif(50,1,2))))

ggtern() + 
  geom_point(data = df, aes(x/10, y/10, z/10, color = Group)) + 
  labs(x="X", y="Y", z="Z", title="Title") +
  scale_T_continuous(breaks = seq(0,1,0.2), labels = 1000*seq(0,1,0.2)) +
  scale_L_continuous(breaks = seq(0,1,0.2), labels = 1000*seq(0,1,0.2)) +
  scale_R_continuous(breaks = seq(0,1,0.2), labels = 1000*seq(0,1,0.2))
于 2016-03-24T14:28:58.620 回答