ggplot中hline上的错误栏

Posted

技术标签:

【中文标题】ggplot中hline上的错误栏【英文标题】:Error bar on hline in ggolot 【发布时间】:2016-11-07 04:40:03 【问题描述】:

我有一个看起来很复杂的情节,用 ggplot2 创建; X 轴具有每个点的名称,Y 轴具有它们的值。我用 geom_point 来表示这些。我还为图上的每个点添加了误差线。

现在我已经叠加了一个图,该图仅使用具有不同线型的 geom_hline 来表示此数据中的样本(它与第一个数据框不同,但共享 X 和 Y 轴)。我想展示这些 hlines 上的偏差,并且我正在寻找关于如何描绘 hlines 上的偏差的灵感。

我尝试添加错误栏,但随后它们在 Xaxis 上显示为附加样本,这并不理想。首先这是一个可行的想法吗?

这就是它与 hlines 的外观,误差条在 X 轴上显示为额外的点。

编辑: 代码片段,如果它可以启发某人尝试类似的东西

p <- ggplot(df_sample_dots, aes(x=Names, y=Values), show.legend = TRUE) + geom_point(size=5, aes(color=factor(Names))) +
        geom_errorbar(aes(ymin=Values-dev, ymax=Values+dev), width=.2, position=position_dodge(.9), color="black")

p <- p + geom_hline(aes(yintercept=Values, linetype=Names), data=df_sample_hlines, show.legend = TRUE, color="black") + 
        geom_errorbar(aes(ymin=Values-dev, ymax=Values+dev), data = df_sample_hlines, color="thistle4", width=1, size=1)

【问题讨论】:

“显示这些直线上的偏差”是什么意思? 偏差是指最小值和最大值,请记住,hline 是表示的中值。 【参考方案1】:

这样的事情怎么样:

library(ggplot2)
library(dplyr)

set.seed(12345)

toPlot <-
  data.frame(
    group = factor(sample(LETTERS[1:10],1000,TRUE))
  ) %>%
  mutate(value = rnorm(1000) + 
           as.numeric(group)/10)

basePlot <-
  ggplot(toPlot) +
  stat_summary(aes(x = group
                   , y = value)
               , fun.data = mean_cl_normal) +
  theme_minimal()

basePlot

lineAdd <-
  data.frame(
    x = range(as.numeric(toPlot$group)) + c(-.5,.5)
    , ymax = 1.2
    , ymin = 0.8
  )

basePlot +
  geom_ribbon(
    data = lineAdd
    , mapping = aes(x = x
                    , ymax = ymax
                    , ymin = ymin)
    , col = "light gray"
    , alpha = 0.2
  ) +
  geom_hline(yintercept = 1)

您仍然需要手动添加每一行(并为功能区生成数据),但如果您的输入数据集是一致的,您也可以自动添加。

【讨论】:

谢谢,我正在尝试这个。丝带是个好主意。我会及时通知你。 马克,我发现在我的具体情况下,色带降低了图表的可读性,因为我至少有 3 条水平线,有时最多 5 条。我想我必须坚持只是在 hlines 上显示常规误差线,并接受它们在 x 轴上显示为附加点的事实。但是谢谢你的想法,它给了我灵感。 我已经接受了你的回答,因为如果只有一条水平线,geom_ribbon 绝对是在这种情况下描绘最小值和最大值的最佳方式。 有这么多行,可能会很困难。您的解决方案可能是正确的。您可以调整功能区的暗度(使用alpha)——如果您将图表放在足够亮的背景上,这可能是一个解决方案。

以上是关于ggplot中hline上的错误栏的主要内容,如果未能解决你的问题,请参考以下文章

闪亮,R:复选框,geom_hline,ggplot

图例中 geom_hline 的颜色不正确 [ggplot2]

R:将“vline”和“hline”语句组合在一起(ggplot2)

ggplot geom_hline 中无法识别的数据列

ggplot:geom_vline 和 geom_hline 的单独图例

R ggplot2 颜色映射与 geom_hline