在ggplot中创建垂直图层

时间:2016-12-06 19:04:43

标签: r ggplot2

对于y轴的每个级别,我想将这些线垂直分开一小段距离,这样它们就不会重叠。有人可以帮我解决这个问题吗?此外,我不希望它通过抖动等方法随机。所有级别的展示位置都必须保持不变。

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

1 个答案:

答案 0 :(得分:1)

您可以使用position_dodge,但因为只有设置width的选项,我相信您必须使用相反的轴构建它,然后使用coord_flip以你想要的方式取回它:

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

给出:

enter image description here