【问题标题】:How to use a column for a shaded area in ggplot,R?如何在ggplot,R中使用列作为阴影区域?
【发布时间】:2020-01-28 16:24:20
【问题描述】:

我有一个包含 2 列的数据框,我的 valuesstandard error。 我想要的是用我的值绘制一条线,然后将标准误差添加为我的线周围的阴影区域。 我什至不知道如何开始,因为大多数examples 使用geom_ribbon 而不是现有的列。

我真的很困惑,甚至可以根据现有列绘制阴影区域吗? (欢迎任何关于教程或演示的建议!)

【问题讨论】:

  • 请提供一些示例数据并展示您迄今为止所做的尝试。请参阅this 了解有关如何提出好问题的一些详细信息

标签: r ggplot2 plot


【解决方案1】:

您需要 3 列,时间戳、值和标准。就像在 aes(ymin, ymax) 中使用 std 列一样简单:

library(tidyverse)
huron <- data.frame(year = 1875:1972, 
                value = LakeHuron,
                std = runif(length(LakeHuron),0,1))

huron %>% 
  ggplot(aes(year, value)) + 
  geom_ribbon(aes(ymin = value - std, ymax = value + std), fill = "steelblue2") + 
  geom_line(color = "firebrick", size = 1)

如果您想对数据进行分组,您应该在 aes 中使用 fill = your_group 和 group = your_group:

library(tidyverse)
huron <- data.frame(year = rep(1875:1972,2), 
                group = c(rep("a",98),rep("b",98)),
                value = c(LakeHuron, LakeHuron + 5),
                std = runif(length(LakeHuron)*2,0,1))

huron %>% 
  ggplot(aes(year, value, fill = group, group=group)) + 
  geom_ribbon(aes(ymin = value - std, ymax = value + std), fill = 
  "steelblue2") + 
  geom_line(color = "firebrick", size = 1)

我在此处发布了此提示:https://typethepipe.com/vizs-and-tips/ggplot_geom_ribbon_shadow/ 了解更多信息。希望对您有所帮助!

【讨论】:

  • 谢谢卡洛斯!那行得通!只是一个问题,对于我们分组行的情况,我们是否必须添加单独的 geom_ribbons?
  • 很高兴为您提供帮助!这是一个好问题,我编辑了答案! :) 让我知道它是否能解决您的问题
  • 好帖子!我非常专注于数据分析,所以我发现自己经常在创作美丽的情节方面遇到困难!再次感谢!。您还可以在帖子中添加包含不同线型的内容!效果很好!
【解决方案2】:

在此示例中,se 列是值的标准错误:

require(tidyverse)
set.seed(42)

n_obs <- 50
my_data <- tibble(
  values = rnorm(n_obs),
  se = rbinom(n_obs, 5, .5)
)


my_data %>%
  ggplot() + 
  geom_line(aes(1:n_obs, values), color = 'red') +
  geom_ribbon(aes(1:n_obs,
                  ymin = values - se,
                  ymax = values + se),
                  alpha = 1/5,
                  fill = 'steelblue')

【讨论】:

    猜你喜欢
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    相关资源
    最近更新 更多