分组条形图上的分组散点图

Grouped scatterplot over grouped barplot

我正在尝试制作一个分组条形图,其中散点图为覆盖在条形图上的各个数据点着色(我知道箱形图的优点,但它们在我的领域中不是标准的)。 由于我是 R 的新手,我主要通过在半逻辑的试错过程中剪切和粘贴代码位来工作,这是我能做到的最接近的。它使用示例数据集 "Males".

p <- ggplot(Males, aes(factor=year, fill=year, y=wage, x=ethn))
p + stat_summary(fun.y = "mean", geom = "bar", position="dodge") +
    stat_summary(fun.data = mean_cl_normal, geom = "errorbar", mult=1, 
       color="yellow", position="dodge") + 
    geom_jitter(aes(size=.05, col=industry),position=position_dodge(width = 0.8))

ymax not defined: adjusting position using y instead

不幸的是,我没有足够的声誉点数来 post 输出图像,但基本上这些点都与它们覆盖的列颜色相同,而不是混合不同的行业(颜色) 在每一列上。

我的理解是,我遇到的 ymax 错误与我遇到的问题无关。不管怎样,我很高兴有人能提供任何建议。

我认为您遇到的问题是某些几何图形,例如 geom_pointgeom_jitter 不使用或不允许 factor 沿 x- 分组的美学轴。

因此,当您在 factor 而非 忽略的图表顶部绘制其他几何图形时,例如 geom_barfactor某些层的设置被忽略,但 bar 没有,并且您没有得到按年解析的点列。

为了解决这个问题,我会尝试使用 facet_gridfacet_wrap 来间接获取您想要的 x 轴分组。

例如:

require(Ecdat)
data(Males)
quartz(height=6, width=12)

ggplot(Males, aes(x=year, y=wage)) +
  facet_grid(.~ethn) +
  stat_summary(mapping=aes(fill=year), fun.y=mean, geom='bar') +
  stat_summary(fun.data = mean_sdl, geom='errorbar', color='yellow') +
  geom_jitter(aes(color=industry), 
              position=position_jitter(width=0.2), alpha=0.8)

quartz.save('SO_29610340.png')