2016-07-27 13 views
5

Açıklama öğelerinin göründüğü sırayı değiştirmeye çalışıyorum. Hiç bir sonuç almadan yaklaşık bir saat geçirdim. İşte Öğeler bir lejandta nasıl sıraya getirilir?

bir örnek Kurulum:

library(ggplot2) 
set.seed(0) 
d <- data.frame(x = runif(3), y = runif(3), a = c('1', '3', '10')) 

Ve burada ben denedim birçok şeylerden biri: (Benim saf umut, tabii ki, o

enter image description here

ggplot(d, aes(x = x, y = y)) + 
    geom_point(size=7, aes(color = a, order = as.numeric(a))) 
edildi gösterge öğeleri sayısal sırayla gösterilecektir: 1, 3, 10.)

cevap

8

ggplot genellikle faktör değerlerinizi'e göre sipariş edecektir Faktörün. İstediğiniz sırada olduğundan emin olun, aksi takdirde R'de çok fazla fonksiyonla savaşacaksınız, ancak renk skalasını işleyerek bunu manuel olarak değiştirebilirsiniz:

ggplot(d, aes(x = x, y = y)) + 
    geom_point(size=7, aes(color = a)) + 
    scale_color_discrete(breaks=c("1","3","10")) 
2

Th ,

d$a <- factor(d$a, levels = d$a) Yani kod bu

library(ggplot2) 
set.seed(0) 
d <- data.frame(x = runif(3), y = runif(3), a = c('1', '3', '10')) 

d$a <- factor(d$a, levels = d$a) 

ggplot(d, aes(x = x, y = y)) + 
    geom_point(size=7, aes(color = a)) 

Ve ouptut enter image description here

Not gibi görünecektir: efsane etiketlerin e sırası yeniden sıralanması ve faktörüne sütunda a değerleri değiştirerek manipüle edilebilir şimdi efsanede: 1 kırmızı, 3 yeşil ve 10 mavi renk

+1

Teşekkürler! Bu cevabı bıktım, çünkü yararlı bilgiler sağlıyor, ancak altta yatan "data.frame" 'i değiştirmeyi gerektirmeyen bir cevap bekliyorum. Her nasılsa, ggplot2'nin bir şeyi efsanedeki öğelerin sıralanması gibi yüzeysel bir şey olarak değiştirmek için altta yatan “data.frame” i değiştirmeyi gerektireceğine inanmak zor. – kjo

İlgili konular