我正在尝试使用 ggtern 生成三元图。
对于 x、y 和 z 变量,我的数据范围为 0 - 1000。我想知道是否可以将轴长度扩展到 100 以上来表示我的数据。
@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)
我认为使用 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))