stat_summary 的 ggplot2 图例

发布于 2024-10-20 05:42:46 字数 261 浏览 4 评论 0原文

我如何创建一个图例,告知红十字是平均值?

ggplot(results, aes(x=factor, y=proportionPositive)) +
geom_boxplot() +
stat_summary(fun.data = "mean_cl_normal", colour = "red", shape=4)

在此处输入图像描述

How can I create a legend informing that the red cross is the mean?

ggplot(results, aes(x=factor, y=proportionPositive)) +
geom_boxplot() +
stat_summary(fun.data = "mean_cl_normal", colour = "red", shape=4)

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夏有森光若流苏 2024-10-27 05:42:46

这是一种方法:

  1. 将美学映射到形状,即 aes(shape="mean")
  2. 创建手动形状比例,即scale_shape_manual()
# 创建虚拟数据
结果 <- data.frame(
  因子=因子(重复(1:10, 100)), 
  正比例=rnorm(1000))

# 绘制结果
ggplot(结果, aes(x=因子, y=比例正)) +
      geom_boxplot() +
      stat_summary(fun.data = "mean_cl_normal", 
              aes(形状=“平均值”), 
              颜色=“红色”,
              几何=“点”)+
      scale_shape_manual(“”,值= c(“平均值”=“x”))

在此处输入图像描述

Here is one way of doing it:

  1. Map an aesthetic to a shape, i.e. aes(shape="mean")
  2. Create a manual shape scale, i.e. scale_shape_manual()
# Create dummy data
results <- data.frame(
  factor=factor(rep(1:10, 100)), 
  proportionPositive=rnorm(1000))

# Plot results
ggplot(results, aes(x=factor, y=proportionPositive)) +
      geom_boxplot() +
      stat_summary(fun.data = "mean_cl_normal", 
              aes(shape="mean"), 
              colour = "red",
              geom="point") +
      scale_shape_manual("", values=c("mean"="x"))

enter image description here

羅雙樹 2024-10-27 05:42:46

对我来说,选项“show.legend=TRUE”确实有效:

ggplot(aes(x=stimulus, y=EPN, fill=strategy))+ 
  stat_summary(fun.data=mean_se, show.legend=TRUE, geom="bar", position="dodge", colour="black", linetype="solid", size=0.3)

for me option "show.legend=TRUE" simply did work out:

ggplot(aes(x=stimulus, y=EPN, fill=strategy))+ 
  stat_summary(fun.data=mean_se, show.legend=TRUE, geom="bar", position="dodge", colour="black", linetype="solid", size=0.3)
酒儿 2024-10-27 05:42:46

要使其看起来像默认图例(借用 @Andrie 代码):

ggplot(results, aes(x=factor, y=proportionPositive)) +
      geom_boxplot() +
      stat_summary(fun.data = "mean_cl_normal", 
              aes(shape=""), # Leave empty
              colour = "red",
              geom="point") +
      scale_shape_manual("mean", values= "") # Will show mean on top of the line

To make it appear like a default legend (borrowing from @Andrie code):

ggplot(results, aes(x=factor, y=proportionPositive)) +
      geom_boxplot() +
      stat_summary(fun.data = "mean_cl_normal", 
              aes(shape=""), # Leave empty
              colour = "red",
              geom="point") +
      scale_shape_manual("mean", values= "") # Will show mean on top of the line
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文