如何通过ggplot2绘制一个复杂的函数?

How to paint a complex function by ggplot2?

我正在尝试为复杂函数的色带着色。然而,这并不顺利(见下图):

我只想绘制函数的下半部分。但是,在这种情况下,只有顶点连接的部分被绘制,绘制的部分包含曲线。

我的代码:

p1 = ggplot(data.frame(x=c(-2.14344,1.25), y=c(0,12.5)), 
             aes(x, y))
p1 = p1 + stat_function(fun = function(x)(exp( -18.82 + 16.99  * x) + exp(-0.5497 - 0.6572  * x)))
p1 = p1 + xlim(-2.14344,1.25) + ylim(0,12.5)
p1 = p1 + geom_ribbon(fill="blue", alpha = 0.5,
                      aes(ymax = exp( -18.82 + 16.99  * x) + exp(-0.5497 - 0.6572  * x), 
                          ymin = 0))
print(p1)

我试图解决这个问题,并在 Google 上搜索了解决方案。但是我找不到任何建议。

如果您知道任何建议,请告诉我如何解决这个问题。谢谢!

一种选择是删除 geom_ribbon 部分并在 stat_function 中添加 geom = 'area':

p1 <- ggplot(data.frame(x=c(-2.14344,1.25),y=c(0,12.5)), aes(x,y)) + 
      stat_function(fun=function(x)(exp( -18.82 + 16.99  * x) + exp(-0.5497 - 0.6572  * x)),geom = "area") + 
      xlim(-2.14344,1.25) + ylim(0,12.5) #+ geom_ribbon(fill="blue", alpha=0.5,aes(ymax=exp( -18.82 + 16.99  * x) + exp(-0.5497 - 0.6572  * x), ymin=0))
p1