2015-12-22 5 views
6

Ich verwende Ggplot2 in R und habe eine manuelle Skala für Farbe (Variable1) und Linientyp (Variable2). Eine der Ebenen ist für beide Typen gleich, und ich möchte nur, dass sie in einer einfachen Zeile erscheint und daher aus der Variablen2-Legende verschwindet.Entfernen von Duplikaten in zwei ggplot-Legende

Siehe den folgenden Minimalcode.

enter image description here

require(ggplot2) 

data_0 <- expand.grid(x=1:2, 
    variable1=c("nothing", "A", "B"), 
    variable2=c("nothing", "positif", "negatif") 
) 
data <- subset(data_0, !((variable1=="nothing" & variable2 != "nothing") | 
    (variable2=="nothing" & variable1 != "nothing"))) 
data$y <- rep(1:5, each = 2) 

ggplot(data=data, aes(x=x, y=y, colour = variable1, lty = variable2))+ 
    geom_line(size=1.5)+ 
    theme_bw()+ 
    theme(legend.position="bottom")+ 
    scale_linetype_manual(values = c(1,3,5)) 

Antwort

11

Sie waren ganz in der Nähe. Sie müssen angeben, breaks-scale_linetype_manual:

library(ggplot2) 

ggplot(data=data, aes(x=x, y=y, colour = variable1, lty = variable2))+ 
    geom_line(size=1.5)+ 
    theme_bw()+ 
    theme(legend.position="bottom") + 
    scale_linetype_manual(breaks = c("positif", "negatif"), values = c(1, 3, 5)) 

enter image description here

+2

ich Pausen versucht und wurde mit es falsch ... Ich war Pausen = c (3,5) mit! Danke vielmals! – PerrySun