entfernen einer Schicht Legende in ggplot
Anderen ggplot Legende Frage!
Ich habe einen Datensatz der form
test <- data.frame(
cond = factor(rep(c("A", "B"), each=200)),
value = c(rnorm(200), rnorm(200, mean=0.8))
)
Also zwei Gruppen und einige Werte und ich möchte, um den Verlauf der Dichte. Ich möchte auch hinzufügen einer Linie, die den Mittelwert für jede Gruppe, zu der Handlung, so dass ich:
test.cdf <- ddply(test, .(cond), summarise, value.mean=mean(value))
Dann in ggplot-Aufruf:
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)
Wenn Sie den oben stehenden code ausführen, erhalten Sie eine Legende, die angibt, jede Gruppe, aber auch für den Mittelwert Indikator-vline. Meine Frage ist, wie kann ich loswerden der Legende für die geom_vline()
?
- Sie haben zugeordnet
cond
auf eine Füllung als auch eine Farbe. Durch das entfernen eines dieser mappings sollte das problem lösen. - Ist meine Antwort von nutzen für Sie?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Je nach der version von ggplot2, die Sie verwenden, erhalten Sie dieses problem. Mit ggplot2 vs 0.9.0 auf R2.14.1 bekomme ich diese Grafik:
das nicht die Legende für die vline. In dieser version von ggplot2 Sie können zwicken das auftreten der Legende mit
show_guide
:nachbildet, Ihr problem. Standardmäßig
show_guide = FALSE
. In älteren Versionen können Sie hinzufügenlegend = FALSE
zugeom_vline
um das weglassen der Legende. Hinzufügenlegend = FALSE
noch arbeitet, arbeitet immer noch in der aktuellen version, aber es wirft eine Warnung:Ich würde empfehlen ein Upgrade
ggplot2
.show_guide
- flag, welches das macht, was ich will. Cheers.show_guide
ist veraltet. Bitte verwenden Sieshow.legend
statt.