Объедините geom_function и geom_ribbon в ggplot2

Я хотел бы выделить область между двумя функциональными кривыми, построенными с помощью функции geom_function.

Например, я создаю две кривые:

ggplot() + geom_function(fun = function(x){x^2}) + geom_function(fun = function(x){x^2 + 1})

Как я могу выделить область между этими кривыми? Я думаю, что geom_ribbon может быть ответом, но весь пример кода, который я видел для geom_ribbon, использовал набор данных для сопоставления. Как я могу сделать это с помощью функции geom_function, то есть кривых, основанных только на функции, а не на фактических данных?


person Marcel Schmitt    schedule 21.04.2021    source источник
comment
Я чувствую, что этот вопрос был преждевременно закрыт - ОП спросил, можно ли это сделать без фрейма данных (например, geom_function). Общий ответ создает фрейм данных со значениями y, используемыми для ymin и ymax, на основе столбца x.   -  person chemdork123    schedule 22.04.2021
comment
@ chemdork123 Если есть способ сделать это без создания data.frame, вы также можете добавить его в ответ на существующий вопрос. Но в целом ggplot хорош для отображения данных, а не абстрактных функций. Если вы хотите манипулировать этими функциями, вам нужно будет самостоятельно вычислить эти значения в data.frame.   -  person MrFlick    schedule 22.04.2021