2016-12-06 3 views
0

Für jede Ebene der y-Achse möchte ich die Linien vertikal um einen kleinen Abstand trennen, so dass sie nicht überlappen. Kann mir jemand bitte helfen, das zu erreichen? Außerdem möchte ich nicht, dass es zufällig durch eine Methode wie Jittering ist. Die Platzierung muss auf allen Ebenen konstant sein.Erstellen Sie vertikale Ebenen in ggplot

data(mtcars) 
str(mtcars) 
mtcars$cyl = as.factor(mtcars$cyl) 
mtcars$carb = as.factor(mtcars$carb) 
ggplot(mtcars) + aes(mpg,cyl,color = carb) + geom_line() + 
    geom_point() 

enter image description here

Antwort

1

Sie können von position_dodge machen, obwohl, weil das nur eine Option hat width zu setzen, glaube ich, dass Sie es mit den gegenüberliegenden Achsen bauen müssen, dann coord_flip es zu bekommen verwenden zurück die Art und Weise wollte man es:

ggplot(mtcars 
     , aes(cyl, mpg 
      ,color = carb)) + 
    geom_line(position = position_dodge(0.3)) + 
    geom_point(position = position_dodge(0.3)) + 
    coord_flip() 

Gibt:

enter image description here

Verwandte Themen