Bagaimana cara mengubah jumlah centang dan menerapkan gradien warna mutli di ggtern?

Saya sedang bereksperimen dengan kode ini dan yang menurut saya menarik adalah jumlah tanda centangnya berubah ketika saya merencanakan. Dalam kasus saya, saya mendapatkan ini:

masukkan deskripsi gambar di sini

Kode yang digunakan sama seperti di OP:

#Orignal Data as per Question
a <- c(0.1, 0.5,0.5, 0.6, 0.2, 0          , 0         , 0.004166667, 0.45) 
b <- c(0.75,0.5,0  , 0.1, 0.2, 0.951612903,0.918103448, 0.7875     , 0.45)
c <- c(0.15,0  ,0.5, 0.3, 0.6, 0.048387097,0.081896552, 0.208333333, 0.10) 
d <- c(500,2324.90,2551.44,1244.50, 551.22,-644.20,-377.17,-100, 2493.04) 
df <- data.frame(a, b, c, d)

#For labelling each point.
df$id <- 1:nrow(df)

#Build Plot
ggtern(data=df,aes(x=c,y=a,z=b),aes(x,y,z)) + 
  stat_density2d(geom="polygon",
                 n=400,
                 aes(fill=..level..,
                 weight=d,
                 alpha=abs(..level..)),
                 binwidth=100) + 
  geom_density2d(aes(weight=d,color=..level..),
                 n=400,
                 binwidth=100) +
  geom_point(aes(fill=d),color="black",size=5,shape=21) + 
  geom_text(aes(label=id),size=3) + 
  scale_fill_gradient(low="yellow",high="red") + 
  scale_color_gradient(low="yellow",high="red") + 
  theme_tern_rgbw() + 
  theme(legend.justification=c(0,1), legend.position=c(0,1)) + 
  guides(fill = guide_colorbar(order=1),
         alpha= guide_legend(order=2),
         color="none") + 
  labs(  title= "Ternary Plot and Filled Contour",
         fill = "Value, V",alpha="|V - 0|")

#Save Plot
ggsave("TernFilled.png")

Saya telah mencoba menambah jumlah centang menjadi 11, tetapi tidak berhasil. Bagaimana cara menentukan jumlah tanda centang?

Gradien multi-warna

Dan apakah mungkin untuk menggunakan gradien multi warna dan bukan gradien dua warna? Saya mencoba mengaturnya

scale_fill_gradient(low="yellow",high="red")

to

scale_fill_gradient(low="blue", mid = "yellow",  high="red")

tapi tidak ada perubahan. Bagaimana cara melakukannya?


person Tom Kurushingal    schedule 21.05.2015    source sumber
comment
@Nicholas Hamilton menyarankan Anda untuk menggunakan scale_fill_gradient2. Harap perhatikan 2.   -  person Henrik    schedule 21.05.2015


Jawaban (1)


ggtern 2.0.1, yang diterbitkan di CRAN beberapa hari yang lalu setelah menulis ulang paket secara menyeluruh agar kompatibel dengan ggplot2 2.0.0. Ringkasan fungsi baru di ggtern 2.0.X dapat ditemukan di sini:

Jadi sehubungan dengan jumlah tick, kecuali jika ditentukan secara eksplisit melalui argumen 'breaks' di setiap scale_X_continuous(...) [di mana X = T, L atau R], atau melalui limit_tern(...), di mana argumen 'breaks' yang sama diteruskan ke ketiganya skala kontinu, ggtern akan mencoba membuat tebakan terbaik.

Perhatikan kumpulan contoh berikut:

#Set up a plot
df   = data.frame(x=1,y=1,z=1)
base = ggtern(data=df,aes(x,y,z)) + geom_point()

#1. The default case, best guess.
base 

#2. A reduced scale limit, with best guess.
base + limit_tern(.5,.5,.5)

#3. Manual breaks passed to all three ternary scales
base + limit_tern(breaks = seq(0,1,by=0.05))

#4. Manual breaks passed to all three ternary scales, under limited region
base + limit_tern(.5,.5,.5,breaks = seq(0,1,by=0.05))

#5. Manual breaks passed to a single ternary scale, the other two are done by best guess
base + scale_T_continuous(breaks  = seq(0,1,by=0.05))
person Nicholas Hamilton    schedule 18.01.2016