2016-03-18 7 views
8

Może to wydawać się głupim pytaniem, ale jestem nieco zdezorientowany.Elementy legendy ggplot2 w pojedynczym rzędzie poziomym

Wygląda na to, że kod, który napisałem i przetestowałem w zeszłym tygodniu, nagle postanowił zmienić wynik, nawet jeśli nic w kodzie ani wersji R lub RSTudio się nie zmieniło.

Poprzednio, gdy narysowałem wykres z ggplot2 i poprosiłem o pojawienie się legendy u dołu wykresu, automatycznie ustawiono elementy w pojedynczy poziomy rząd. Teraz, gdy uruchamiam ten sam kod, umieszczam element w kilku kolumnach dwurzędowych.

Oto przykład ...

mtcars$cyl <- (1:32) 
subcars <- subset(mtcars, cyl<10) 
subcars$cyl <- as.factor(subcars$cyl) 

ggplot(subcars, aes(carb, mpg, group=cyl, colour=cyl)) + 
    geom_line() + 
    theme_classic() + 
    theme(plot.title = element_text(size = rel(2), face="bold", vjust=-4)) + 
    theme(legend.position = "bottom") + 
    theme(legend.direction = "horizontal") + 
    labs(title="Title") 

Jak widać, już wypróbowane, dodając w linii theme(legend.direction = "horizontal") ale wciąż legendę, który wyświetla elementy w 5 kolumn 2-rzędowych (tak, nawet nie w dwóch rzędach).

Teraz mogę tylko założyć, że pojawiły się jakieś uaktualnienia, których nie byłem świadomy lub coś takiego, więc jestem gotów zaakceptować potrzebę opracowania nowej strategii radzenia sobie z tym problemem (który właśnie był problem w zeszłym tygodniu). Chociaż jestem nieco zdezorientowany tym, dlaczego mój kod nagle postanowił przestać działać (jakikolwiek wkład w to powitanie), jestem bardziej zainteresowany znalezieniem poprawki dla bezpośredniego problemu z wyświetlaniem moich elementów legendy w dziwnej konfiguracji.

Odpowiedz

20

Dodaj to do swojej działki:

+ guides(colour = guide_legend(nrow = 1)) 
+0

Dziękuję @joran =] – Psychologeek