2012-03-26 17 views
9

Başka bir ggplot efsane sorusu!ggplot içinde katman efsanesini kaldırma

Ben formda

test <- data.frame(
    cond = factor(rep(c("A", "B"), each=200)), 
    value = c(rnorm(200), rnorm(200, mean=0.8)) 
) 

Yani iki grup ve bazı değerlerin bir veri kümesi var ve yoğunluğu çizmek istiyorum.

test.cdf <- ddply(test, .(cond), summarise, value.mean=mean(value)) 

Sonra ggplot çağrısında: Ben de I böylece arsa için her grup için ortalama belirten bir satır eklemek istediğiniz

ggplot(test, aes(value, fill=cond)) + 
    geom_density(alpha=0.5) + 
    labs(x='Energy', y='Density', fill='Group') + 
    opts(
    panel.background=theme_blank(), 
    panel.grid.major=theme_blank(), 
    panel.grid.minor=theme_blank(), 
    panel.border=theme_blank(), 
    axis.line=theme_segment() 
) + 
    geom_vline(data=test.cdf, aes(xintercept=value.mean, colour=cond), 
    linetype='dashed', size=1) 

Yukarıdaki kod çalıştırırsanız, belirten bir efsane olsun Her grup, ama aynı zamanda ortalama gösterge vline için bir. Sorum şu: geom_vline() için efsaneden nasıl kurtulabilirim?

+1

'cond''i bir dolguya ve ayrıca bir renge eşleştirdiniz. Bu eşleştirmelerden birini kaldırmak sorunu çözmelidir. – Andrie

+0

Size herhangi bir kullanımım cevabım mı? –

cevap

15

Eğer bu sorunu olsun kullandığınız ggplot2 sürümüne bağlı.

enter image description here

UŞebeke ilişkin açıklamayı içermemektedir: R2.14.1 üzerine 0.9.0 vs ggplot2 kullanarak bu grafiği olsun.

ggplot(test, aes(value, fill=cond)) + 
    geom_density(alpha=0.5) + 
    labs(x='Energy', y='Density', fill='Group') + 
    opts(
    panel.background=theme_blank(), 
    panel.grid.major=theme_blank(), 
    panel.grid.minor=theme_blank(), 
    panel.border=theme_blank(), 
    axis.line=theme_segment() 
) + 
    geom_vline(data=test.cdf, aes(xintercept=value.mean, colour=cond), 
    linetype='dashed', size=1, show_guide = TRUE) 

enter image description here

sorununuzu çoğalır: ggplot2 bu versiyonda show_guide kullanarak efsanenin oluşumunu çimdik. Varsayılan, show_guide = FALSE. Eski sürümlerde, efsaneyi atlamak için geom_vline'a legend = FALSE'u ekleyebilirsiniz. legend = FALSE ekleme hala geçerli sürümünde çalışıyor hala çalışır, ancak bir uyarı atıyor:

Warning message: 
In get(x, envir = this, inherits = inh)(this, ...) : 
    "legend" argument in geom_XXX and stat_XXX is deprecated. Use show_guide = TRUE or show_guide = FALSE for display or suppress the guide display. 

Ben ggplot2 yükseltme öneriyoruz.

+0

Teşekkürler @Paul ... ggplot yükseltmek istediğimi yapan 'show_guide 'bayrağını etkinleştirdi. Şerefe. – Hassantm

+1

ggplot 2.0.0'dan itibaren: 'show_guide' kullanımdan kaldırıldı. Bunun yerine lütfen 'show.legend' kullanın. –