R中ggplot2的dotplot中的点未对齐

彼得

我不明白为什么ID 2,6,8,10的点不会像在1,3,4,7,9中那样垂直对齐。

偏移量受堆栈比的影响,但为什么不影响所有组?

ggplot(sleep, 
       aes(x=ID,fill=group,y=extra))+
  geom_dotplot(binaxis = 'y',
               method="histodot",
               stackgroups = TRUE,
               binpositions="bygroup",
               stackratio=1,
               binwidth=0.1, 
               stackdir = "center",
               dotsize = 3)

情节

另一个例子是

ggplot(mtcars, aes(x = factor(am),fill = factor(cyl), y = mpg)) +
  geom_dotplot(binaxis = "y",stackgroups = TRUE, stackdir = "center", binpositions="all")

在这里stackgroups = TRUE,一切都变得怪异了。

img

可以在这里做些什么,还是有另一种方式获得山姆?

彼得

看来geom_dotplot会像所有点都在一组中一样计算“躲避”位置,然后在每组中绘制它们。

我发现周围的工作。在这里,我作图并自己给点上色。该ggplot无法为其创建图例,因此我制作了另一幅图,它是正确的图例。然后使用plot_grid制作我的最终剧情。正确设置键很重要,否则绘图将被涂错颜色。

mycars <- as.data.table(mtcars)
mycars[cyl=="4",mycol:="red"][cyl=="6",mycol:="green"][cyl=="8",mycol:="blue"]
setkey(mycars,am,mpg)
myplot <- ggplot(mycars, aes(x = factor(am), y = mpg)) +
  geom_dotplot(binaxis = "y",
               fill=mycars$mycol,
               stackratio=1,
               binwidth=0.7, drop=FALSE,
               stackdir = "center",
               dotsize = 1)

lplot <- ggplot(mtcars, aes(x = factor(am),fill = factor(cyl), y = mpg))+
  geom_dotplot(binaxis = "y",stackgroups = TRUE)+
  scale_fill_manual(values=c("red","green", "blue"))
mylegend <- get_legend(lplot)

plot_grid(myplot,mylegend,ncol=2,rel_widths =  c(6,1))

情节

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章