Как я могу получить данные за кривой ggplot2::geom_smooth?

взять этот пример:

ggplot(iris,aes(Sepal.Width,Sepal.Length)) + geom_smooth()

Как получить x и y, которые использовались для построения этой синей кривой?

Этот случай будет рассчитан loess автоматически, мой реальный случай будет рассчитан gam автоматически.

Я пытался :

  • воспроизводя его с помощью функции gam
  • изучение сюжетного объекта

И ни с одним не добился успеха


person Moody_Mudskipper    schedule 09.10.2017    source источник
comment
приведите пример вашей игровой модели для данных, которые вы используете, в какой пакет включена игровая функция?   -  person Mateusz1981    schedule 09.10.2017
comment
Вы смотрели здесь - stackoverflow. ком/вопросы/9789871/   -  person Hardik Gupta    schedule 09.10.2017
comment
да, это действительно дубликат, большое спасибо!   -  person Moody_Mudskipper    schedule 09.10.2017
comment
tldr ggplot_build(my_plot)$data[[1]][c("x","y")]   -  person Moody_Mudskipper    schedule 09.10.2017


Ответы (1)


Насколько я понял вопрос, попробуйте такой подход:

 library(gam)
    library(broom)
    mod <- gam(Sepal.Length ~ Sepal.Width,  data = iris)
    ggplot(iris, aes(Sepal.Width,Sepal.Length)) + geom_point() + 
      geom_line(data = augment(mod, type.predict = "response"), 
                aes(y = .fitted), color = "blue")
person Mateusz1981    schedule 09.10.2017