2016-03-24 13 views
-1

Ggtern kullanarak üçlü bir çizim oluşturmaya çalışıyorum.Ggtern üçlü çiziminde eksen ayarlama

Verilerim x, y ve z değişkenleri için 0 - 1000 arasındadır. Verilerimi temsil etmek için 100'ün üzerinde eksen uzunluğunu uzatmanın mümkün olup olmadığını merak ettim.

+1

Yığın Taşması'na Hoş Geldiniz! Lütfen [iyi bir soru nasıl sorulur] (http://stackoverflow.com/help/how-to-ask) ve [tekrarlanabilir bir örnek] (http://stackoverflow.com/questions/) hakkında bilgi edinin. 5.963.269). Bu, başkalarının size yardım etmesini çok daha kolaylaştıracaktır. – zx8754

cevap

1

Sanırım ggtern ile bunu yapmak için doğrudan bir çözüm yok. , Birliğine toplamı konsantrasyonlar

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)) 
2

@Nevrome doğru yolda, puanlarınız hala yani 'kompozisyonlar' olarak çizilen olacak ama sen etiketlerini değiştirebilirsiniz: Ama bunu çözmenin en kolay gibi görünebilir eksenleri, 0 ile 1000 arasında bir aralığı belirtmek için.

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)