如何在geom_dotplot中使用颜色?

时间:2017-08-01 18:04:19

标签: r ggplot2

我有这个地图:

ggplot(mpg, aes(drv, hwy)) +
  geom_dotplot(binwidth = 1, binaxis = 'y', stackdir = 'center')

呈现为

enter image description here

我想按制造商给点滴颜色。如果我添加fill美学:

ggplot(mpg, aes(drv, hwy, fill = manufacturer)) +
  geom_dotplot(binwidth = 1, binaxis = 'y', stackdir = 'center')

它呈现为

enter image description here

看起来添加颜色已经以某种方式击败了堆叠算法,导致点重叠。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

使用包 ggbeeswarm 中的geom_beeswarm是一个选项。它没有以相同的方式使偶数行的点居中,但点颜色似乎比geom_dotplot更好。

library(ggbeeswarm)

ggplot(mpg, aes(drv, hwy, color = manufacturer)) +
     geom_beeswarm(size = 2)

enter image description here

答案 1 :(得分:1)

这是我最接近的:

ggplot(mpg, aes(drv, hwy, fill = manufacturer)) +
  geom_dotplot(stackdir = "centerwhole",stackgroups = TRUE,
  binpositions = "all", binaxis = "y", binwidth = 1)+
  theme_bw()

enter image description here

如果您需要完全集中所有内容,我会审核this example编写for循环以使用共享图例绘制三个单独的图表(每个因子级别一个)。

编辑:

这是使用函数将三个图表与相同图例组合在一起的链接过程之后的图表:

enter image description here