2015-04-06 11 views
6

Ben sınırlı itibar bu sitede var çünkü bir görüntü sunamıyoruz üzgünüm ... ggplot2'deki scale_colour_brewer() renk aralığı nasıl ayarlanır?</p> <pre><code>p <- ggplot()+ geom_line(data=data, aes(x, y, color=Label))+ scale_colour_brewer(palette="Oranges") </code></pre> <p>:

Ben Ar benim çizgi grafiği oluşturmak için aşağıdaki kodu kullanılır (paleti seçildi) Paleti "Portakalları" kullandım çünkü farklı renklerle benzer bir seri çizgi oluşturmak istiyorum.

Bununla birlikte, alt/üst aralığın rengi çok açık, bu yüzden beyazımsı renkleri önlemek için palet için bir sınır ayarlamak istiyorum.

scale_color_gradient(low = "green", high = "red") gibi bir şey belirtmem gerektiğini biliyorum, ancak belirli bir paletle belirtilen rengi nasıl bulabilirim?

Çok teşekkürler!

cevap

4

Farklı bir ölçekiniz olduğundan, renk kümesini el ile oluşturabilmeniz ve çok fazla sorun yaşamadan scale_color_manual öğesini kullanabilmeniz gerekir.

library(ggplot2) 
theme_set(theme_bw()) 
fake_data = data.frame(
    x = rnorm(42), 
    y = rnorm(42), 
    Label = rep(LETTERS[1:7], each = 6)) 

p_too_light <- ggplot()+ geom_line(data=fake_data, aes(x, y, color=Label))+ 
    scale_colour_brewer(palette="Oranges") 
p_too_light 

Şimdi brewer.pal ve http://www.datavis.ca/sasmac/brewerpal.html kullanın. Eğer 6'dan fazla kategori varsa

library(RColorBrewer) 
my_orange = brewer.pal(n = 9, "Oranges")[3:9] #there are 9, I exluded the two lighter hues 

p_better <- ggplot()+ geom_line(data=fake_data, aes(x, y, color=Label))+ scale_colour_manual(values=my_orange) 
p_better 

, sen brewer.pal çağrı önceki sınır renklerle colorRampPalette kullanabilirsiniz. Ancak, şimdi palet şemasını seçmek daha fazla düşünmeyi gerektiriyor (belki de ggplot2, ayrı ölçekler için bunu otomatik olarak yapmıyor).

fake_data2 = data.frame(
    x = rnorm(140), 
    y = rnorm(140), 
    Label = rep(LETTERS[1:20], each = 7)) 

orange_palette = colorRampPalette(c(my_orange[1], my_orange[4], my_orange[6]), space = "Lab") 
my_orange2 = orange_palette(20) 

p_20cat <- ggplot()+ geom_line(data=fake_data2, aes(x, y, color=Label))+ 
    scale_colour_manual(values=my_orange2) 
p_20cat