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')

Производит это, как и ожидалось: