2016-12-13 10 views
0

Ich habe ein Grundstück wie folgt aus:So steuern Legende mit vielen Gruppen

enter image description here

, die mit diesem Code erstellt wurde:

# Make data: 
set.seed(42) 
n <- 1000 
df <- data.frame(values = sample(0:5, size = n, replace = T, prob = c(9/10, rep(0.0167,5))), 
       group = rep(1:100, each = 10), 
       fill2 = rep(rnorm(10), each = 100), 
       year = rep(2001:2010, times = 100) 
       ) 
df$values <- ifelse(df$year %in% 2001:2007 == T, 0, df$values) 

# Plot 
require(ggplot2) 
p <- ggplot(data = df, aes(x = year, y = values, colour = as.factor(group))) + geom_line() 
p 

Da es so viele Gruppen sind, die Legende Wirklich nicht hilfreich. Idealerweise möchte ich nur zwei Elemente in der Legende, eine für Gruppe = 1 und für alle anderen Gruppen (sie sollten alle die gleiche Farbe haben). Gibt es eine Möglichkeit, dies zu erzwingen?

Antwort

1

Sie können eine neue Variable definieren, die nur zwei Werte hat, aber immer noch Plotlinien entsprechend ihrer ursprünglichen Gruppe,

ggplot(data = df, aes(x = year, y = values, group = group, 
         colour = ifelse(group == 1, "1", "!1"))) + 
    geom_line() + 
    scale_colour_brewer("groups", palette="Set1") 
Verwandte Themen