用散点图覆盖分组条形图

bob*_*bel 5 r plotly r-plotly

我正在尝试在 plotly 中的分组条形图顶部叠加散点图。但是,在简单的条形图中,散点正确地放置在各个条的顶部,而在分组条形图中,散点不会自动调整。

这是一个演示问题的示例:

set.seed(1)
d1 <- data.frame(x=rep(c('a', 'b', 'c'), each=2),
                 y=rnorm(6, mean=10),
                 c=rep(c('q', 'r'), times=3))
d2 <- d1[d1$c=='q', ]

p1 <- plot_ly(data=d2, x=~x, y=~y, type='bar')
p2 <- add_trace(p1, data=d2, x=~x, y=~y, 
                type='scatter', mode='markers', marker=list(size=20))
p3 <- plot_ly(data=d1, x=~x, y=~y, color=~c, type='bar')
p4 <- add_trace(p3, data=d1, x=~x, y=~y, 
                type='scatter', mode='markers', marker=list(size=20))

subplot(p1, p2, p3, p4, nrows=2)
Run Code Online (Sandbox Code Playgroud)

这将生成下图: 在此处输入图片说明

而在右上角的面板 (p2) 中,点放置在各自的条上,而在右下角 (p4) 中,这些点不会根据颜色因子进行调整。

我可以想象通过设置x为数字变量并手动、少量调整点等来解决这个问题。但这似乎相当乏味。有没有一种简单的方法可以使情节进行调整?

(显然我们的目标不是让一个点显示每个条的顶部,而是用整个云覆盖条)

vli*_*ana 0

取决于您想要做什么,您可以使用误差线,您可以使用width,thicknesscolor参数使其看起来像常规散布(width指末端的线和thickness胡须,thickness = 0应该将它们取出) 。