gpt4 book ai didi

r - geom_crossbar 忽略 alpha 参数?

转载 作者:行者123 更新时间:2023-12-04 13:20:23 28 4
gpt4 key购买 nike

我正在尝试将汇总统计信息添加到我的绘图中,但希望它们具有一定的透明度。这似乎不适用于 geom_crossbar。以示例代码from the documentation :

df <- data.frame(
trt = factor(c(1, 1, 2, 2)),
resp = c(1, 5, 3, 4),
group = factor(c(1, 2, 1, 2)),
upper = c(1.1, 5.3, 3.3, 4.2),
lower = c(0.8, 4.6, 2.4, 3.6)
)

p <- ggplot(df, aes(trt, resp, colour = group))
p + geom_errorbar(aes(ymin = lower, ymax = upper), width = 0.2, alpha=0.3)

工作正常,即错误栏是透明的。但是,如果我使用

p + geom_crossbar(aes(ymin = lower, ymax = upper), width = 0.2, alpha=0.3)

相反,透明度不起作用。我错过了什么吗?

编辑 mt1022 的答案适用于示例代码。但是,当我尝试将它添加到我的实际绘图中时,透明度不再起作用,而且它会更改绘图中的所有其他颜色。

Here是数据,这是我的命令:

ggplot(plotdata3, aes(x=Ncases, y=Intercept.ols, group=col, colour=col)) + geom_point() + stat_summary(fun.y="mean", geom="line", alpha=0.3, aes(group=1)) +
stat_summary(fun.data="mean_cl_boot", geom="crossbar", width=0.08, aes(group=1)) + scale_color_manual(values=rgb(matrix(rep(0,27), ncol=3),alpha = 0.5)) +
scale_y_continuous(breaks=seq(0,1,by=0.1)) + coord_cartesian(ylim=c(0,1))

当我省略 scale_color_manual() 部分时,绘图看起来是 like this现在我想让横杆透明,就像直线一样。

最佳答案

我不确定您要在这里做什么,但似乎有几个问题。一方面,您使用颜色来区分 9 个不同的类别(“col”)。即使使用 ggplot 的默认调色板(色调在色轮周围等距分布),颜色之间也几乎无法区分。由于点大小的选择以及将点放在摘要图形(直线和交叉线)下方这一事实,这个问题变得更糟。你可能会过得更好

  1. 把点放在上面,
  2. 使用点形状 21(实心圆)并将填充绑定(bind)到“col”,并且
  3. 使用 Brewer 调色板

下面是两个示例,@lukeA 的解决方案生成的图(实际上确实回答了问题),以及实现上述建议的图。

ggplot(plotdata3, aes(x=Ncases, y=Intercept.ols, group=col, colour=col)) + 
geom_point() +
stat_summary(fun.y="mean", geom="line", alpha=0.3, aes(group=1)) +
stat_summary(fun.data="mean_cl_boot", geom="crossbar",
width=0.08, aes(group=1), color = "#30303030") +
scale_y_continuous(breaks=seq(0,1,by=0.1)) +
coord_cartesian(ylim=c(0,1))

ggplot(plotdata3, aes(x=Ncases, y=Intercept.ols)) + 
stat_summary(aes(group=1), fun.y="mean", geom="line", alpha=0.3) +
stat_summary(fun.data="mean_cl_boot", geom="crossbar",
width=0.08, fill="grey80", color="grey50") +
geom_point(aes(group=col, fill=col), size=3, shape=21) +
scale_fill_brewer(palette="Set1") +
scale_y_continuous(breaks=seq(0,1,by=0.1)) + coord_cartesian(ylim=c(0,1))

第二个图清楚地表明,“col”6 和 9 往往明显低于平均值,而“col”1 和 7 往往明显高于平均值。

关于r - geom_crossbar 忽略 alpha 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40058122/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com