GGally - неожиданное поведение с ggpairs (..., diag = list (непрерывное = 'плотность)))
Я пытаюсь создать матрицу диаграммы рассеяния с диаграммами плотности в диагоналях (предпочтительно, используя ggplot). Документация для ggpairs
в пакете GGally гласит:
diag - это список, который может содержать только переменные "непрерывный" и "Дискретная". Каждый элемент списка diag представляет собой строку, реализующую следующие параметры: непрерывный = точно один из ( "плотность", "бар", 'Пустым'); discrete = точно один из ( "bar", "blank" ).
который предлагает (??), что это должно быть возможно с помощью diag=list(continuous="density")
.
Но следующий код:
xx <- mtcars[,c(1,3,4,6)] ## extract mpg, disp, hp, and wt from mtcars
library(GGally)
ggpairs(xx,diag=list(continuous="density"))
дает следующее:
![]()
Что я делаю неправильно?
NB: попытка сделать то же самое с plotmatrix(xx)
дает следующее:
![]()
который терпит неудачу, потому что графики плотности, по-видимому, масштабируются в каждой диагональной фасете, используя диапазон, основанный на полном наборе данных (xx
), а не диапазон, основанный на xx
, подмножеством для соответствующей грани. В результате вторая строка (disp) выглядит хорошо, потому что disp имеет наибольший диапазон, но строки 1 и 4 сжимаются.
Ответы
Ответ 1
Итак, я, наконец, понял это, изучив другой вопрос здесь. Оказывается, что если axisLabels
не установлено на "show"
, графики плотности на диагонали подавляются без предупреждения.
xx <- mtcars[,c(1,3,4,6)] ## extract mpg, disp, hp, and wt from mtcars
library(GGally)
ggpairs(xx, diag=list(continuous="density"), axisLabels='show')
Производит это, как и ожидалось:
![]()