2013-11-19 2 views
10

Я пытаюсь создать матрицу рассеянного рассеяния с графиками плотности в диагоналях (используя предпочтительно ggplot). Документация ggpairs в пакете GGally гласит:GGally - неожиданное поведение с ggpairs (..., diag = list (continu = 'density'))

диаг список, который может содержать только переменные «непрерывный» и «дискретная». Каждый элемент списка 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 сбиты.

+0

@rcs - Re: ваши изменения. Фрагмент на diag из ggpairs был вырезан и вставлен непосредственно из документации (где реализация написана неправильно). Ваше редактирование показывает, что это не так. Кстати: у вас есть ответ на вопрос? – jlhoward

ответ

11

Итак, я, наконец, понял это, изучив другой вопрос here. Оказывается, что если 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') 

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

+0

Можно ли добавлять групповые цвета в точки данных участка ????? –

Смежные вопросы