在ggtern三元图中调整轴

时间:2016-03-24 12:29:05

标签: r axis ggtern

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

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

2 个答案:

答案 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))