Почему на графиках рассеяния в функции ggpairs нет слоя лёсса?
У меня быстрый вопрос, и я не могу понять, в чем проблема. Я хотел построить набор данных, который у меня есть, и нашел здесь одно решение: как использовать метод лёсса в GGally::ggpairs с помощью функции переноса
Однако я не могу понять, что было не так с моим подходом. Вот фрагмент кода ниже с простым набором данных mtcars:
library(ggplot2)
library(GGally)
View(mtcars)
GGally::ggpairs(mtcars,
lower= list(
ggplot(mapping = aes(rownames(mtcars))) +
geom_point()+
geom_smooth(method = "loess"))
)
Как вы можете видеть, это мой результат, который не помещает гладкий слой на диаграмму рассеяния. Я хотел использовать его для регрессионного анализа моего фактического набора данных. Любое указание или объяснение было бы хорошо. Спасибо!
1 ответ
Решение в сообщении из комментария @Edward работает здесь с mtcars
. Приведенный ниже фрагмент воспроизводит ваш график выше с добавленной линией лесса:
library(ggplot2)
library(GGally)
View(mtcars)
# make a function to plot generic data with points and a loess line
my_fn <- function(data, mapping, method="loess", ...){
p <- ggplot(data = data, mapping = mapping) +
geom_point() +
geom_smooth(method=method, ...)
p
}
# call ggpairs, using mtcars as data, and plotting continuous variables using my_fn
ggpairs(mtcars, lower = list(continuous = my_fn))
В вашем фрагменте второй аргумент lower
имеет ggplot
объект передан ему, но ему требуется list
со специально названными элементами, которые определяют, что делать с конкретными типами переменных. Элементы в списке могут быть функциями или векторами символов (но неggplot
объекты). Изggpairs
документация:
верхний и нижний - это списки, которые могут содержать переменные "непрерывный", "комбинированный", "дискретный" и "на". Каждый элемент списка может быть функцией или строкой. Если предоставляется строка, она должна реализовывать один из следующих вариантов:
непрерывный ровно один из ('points', 'smooth', 'smooth_loess', 'density', 'cor', 'blank'). Эта опция используется для непрерывных данных X и Y.
combo - ровно одно из ('box', 'box_no_facet', 'dot', 'dot_no_facet', 'facethist', 'facetde density', 'denstrip', 'blank'). Эта опция используется либо для непрерывных данных X и категориальных данных Y, либо для категориальных данных X и непрерывных данных Y.
дискретный ровно один из ('facetbar', 'ratio', 'blank'). Эта опция используется для категориальных данных X и Y.
na ровно одно из ('na', 'blank'). Эта опция используется, когда все данные X - NA, все данные Y - NA или все данные X или Y - NA.
Причина, по которой мой фрагмент работает, заключается в том, что я прошел list
к lower
, с элементом с именем "непрерывный", который my_fn
(который генерирует ggplot
).