我正在尝试使用ggtern生成三元图。
对于x,y和z变量,我的数据范围为0 - 1000。我想知道是否可以将轴长度扩展到100以上以表示我的数据。
答案 0 :(得分:2)
@Nevrome位于正确的路径上,您的点仍将被绘制为“合成”,即浓度总和为1,但您可以更改轴的标签,以指示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)
答案 1 :(得分: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))