【问题标题】:Shade area under and above the curve function in ggplotggplot中曲线函数下方和上方的阴影区域
【发布时间】:2020-05-21 04:06:11
【问题描述】:

我有一个函数,这个函数的域是(-100, 100)

fun.1 <- function(x) (-100*x)/(x+100)

这是我如何绘制函数的代码。

ggplot(data.frame(x = c(-50,50)), mapping = aes(x=x)) + stat_function(fun = fun.1, color = "black", size = 1)

我想将此函数曲线下方的区域用“红色”颜色着色,并将该函数上方的区域用“绿色”颜色着色。谁能知道怎么做?

谢谢。

【问题讨论】:

    标签: ggplot2


    【解决方案1】:

    首先使用您的函数创建 x 和 y 的数据框可能最简单,而不是通过 ggplot2 传递您的函数。

    x <- -50:50
    y <- fun.1(x)
    df <- data.frame(x,y)
    

    绘图可以通过2个geom_ribbon对象(一个上面一个下面)来完成,它们可以用来填充一个区域(geom_areageom_ribbon的一个特例),我们指定yminymax 两者。底部指定ymax=yymin=-Inf,顶部指定ymax=Infymin=y。最后,由于df$ydf$x 变化,我们应该确保所有引用y 的参数都包含在aes() 中。

    ggplot(df, aes(x,y)) + theme_minimal() +
      geom_line(size=1) +
      geom_ribbon(ymin=-Inf, aes(ymax=y), fill='red', alpha=0.2) +
      geom_ribbon(aes(ymin=y), ymax=Inf, fill='green', alpha=0.2)
    

    【讨论】:

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