【问题标题】:geom_ribbon set slope & interceptgeom_ribbon 设置斜率和截距
【发布时间】:2018-01-04 17:39:22
【问题描述】:

我用 ggplot 使用这段代码创建了以下图:

虚线是我的模型,实线是参考线生成的:

geom_abline(slope = 1, intercept = 0)

我想在我的参考线周围添加一条带,其斜率范围为 0.9 到 1.1(截距仍保持在 0)。有人可以为我提供一个如何编码的示例吗?

【问题讨论】:

  • 怎么样:geom_ribbon(aes(x,ymin=0+.9*x, ymax=0+1.1*x), fill="black",alpha=.2)?
  • 谢谢。这看起来很不错。另一个快速的问题 - 有没有办法将丝带延伸到情节的边缘?
  • 如果您希望功能区扩展到整个绘图范围,您可能需要创建一个单独的数据集。可能是df2 <- data.frame(x = seq(-80,0)),然后在geom_ribbon()中指定data=df2

标签: r ggplot2


【解决方案1】:

这可能有点矫枉过正,但我​​的解决方案是 - 在背景中以不同的斜率绘制多个 ablines。

# Generate dummy model data
dModel <- data.frame(x = 5:10, y = sqrt(5:10))

# Plot data
library(ggplot2)

ggplot(dModel) + 
    # Model
    geom_line(aes(x, y), linetype = 2) +
    # This will be ribbon - multiple lines with different slopes
    geom_abline(slope = seq(0.9, 1.1, 0.001), color = "grey60", intercept = 0) +
    geom_abline(slope = 1, intercept = 0) +
    coord_cartesian(ylim = c(1, 10), xlim = c(1, 10)) +
    theme_classic()

结果:

【讨论】:

  • 我永远不会只绘制多个连续的 ablines!尽管我需要找到一种方法使线条半透明,因为它们会遮盖我的几个数据点,但这非常有效。
  • @user3220999 尝试为 abline 设置 alpha (alpha = 0.1)
  • @user3220999 有什么办法可以改进我的问题以便您接受吗?
  • 对不起!我离开了几个星期,现在才刚刚开始关注一些事情。感谢您的帮助!
猜你喜欢
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-16
  • 2021-10-22
  • 1970-01-01
  • 2021-10-25
相关资源
最近更新 更多