2016-03-06 16 views
20

Próbuję narysować poniższy wykres za pomocą pakietu ggplot2, ale jakoś oś nie pojawi się. tyknięcia są tam, po prostu nie linia osi. Użyłem funkcji theme(axis.line=element_line()), ale to nie zadziałałoby.ggplot2, oś nie wyświetla się po użyciu motywu (axis.line = element_line())

Oto mój kod:

library(ggplot2) 

ggplot(data = soepl_randsub, aes(x = year, y =satisf_org, group = id)) + 
    geom_point() + geom_line() +ylab("Current Life Satisfaction") +theme_bw() + 
    theme(plot.background = element_blank(), 
     panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank()) + 
    theme(panel.border= element_blank()) + 
    theme(axis.line = element_line(color="black", size = "2")) 

Nie jestem pewien, co poszło źle. Oto wykres.

enter image description here

+0

w element_line (color = "black" size = "2")) zastąpić size = "2" przez size = 2 – MLavoie

+0

jeśli czujesz, jak życie na krawędzi krwawienia, można zrobić 'DevTools :: install_github ("Katiedaisey/ggplot2") '- lub poczekaj na żądanie ściągnięcia poprawki do' hadley/ggplot2' lub zaczekaj na wydanie poprawki błędu ... –

Odpowiedz

43

Błąd został naprawiony w ggplot2 v2.2.0 Nie ma już potrzeby, aby określić linie osi oddzielnie.

Myślę, że jest to błąd w ggplot2 v2.1.0. (Patrz this bug report i this one.) Obejście polega na oddzielnym ustawianiu linii osi X i osi Y.

library(ggplot2) 

    ggplot(data = mpg, aes(x = hwy, y = displ)) + 
    geom_point() + 
    theme_bw() + 
    theme(plot.background = element_blank(), 
     panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank())+ 
    theme(panel.border= element_blank())+ 
    theme(axis.line.x = element_line(color="black", size = 2), 
     axis.line.y = element_line(color="black", size = 2)) 
2

Nie trzeba osobno określać wymiarów osi dla X i Y. Kiedy określasz rozmiar = "2", R przyjmuje wartość 2 jako nielicznikowy argument. Dlatego parametr linii osi to domyślnie ustawiony na 0 rozmiar. Użyj tej linii kodu:

ggplot(data = mpg, aes(x = hwy, y = displ)) + geom_point() +xlab("Date")+ylab("Value of Home")+theme_bw() +theme(plot.background = element_blank(),panel.grid.major = element_blank(),panel.grid.minor = element_blank()) + theme(panel.border= element_blank()) + theme(axis.line = element_line(color="black", size = 2))

axis_line dziedziczy linii w R, stąd określenie rozmiaru jest obowiązkowe dla wartości innych niż domyślne.

Powiązane problemy