2017-08-18 5 views
1

Je trace avec des facettes et des données discrètes sur l'axe des x. Comment puis-je modifier les étiquettes de l'axe des x sans en changeant les données sous-jacentes? C'est à dire. au lieu des étiquettes qui lisent "a","b","c","d", elles devraient indiquer "Lab 1","Lab 2","Lab 3","Lab 4".ggplot modifier les étiquettes d'axe x sans changer les données sous-jacentes

df <- data.frame(x = factor(rep(c("a","b","c","d"),4), levels = c("a","b","c","d")), 
       y = rep(seq(1,8,1),2), 
       z = c(rep("x",4),rep("y",4)), 
       facet = rep(c(rep("1",2),rep("2",2)),4)) 


ggplot(NULL) + 
    geom_line(data=df, aes(y=y, x=x, linetype=z, group = z, colour=z)) + 
    facet_grid(~facet, scales="free_x", space="free_x") + 
    scale_colour_manual(values=c("Red","Blue")) + 
    scale_linetype_manual(values=c("solid", "dashed")) 

Répondre

3

Vous pouvez utiliser un vecteur de caractères du nom de l'argument labels dans scale_x_discrete.

scale_x_discrete(labels = c("a" = "Lab 1", "b" = "Lab 2", "c" = "Lab 3", "d" = "Lab 4")) 

Sinon, vous pouvez donner à la fois breaks et labels

scale_x_discrete(breaks = c("a", "b", "c", "d"), 
       labels = c("Lab 1", "Lab 2", "Lab 3", "Lab 4"))