2013-11-18 4 views
0

У меня был некоторый успех, создающий сетку графиков рассеяния, показывающую каждую комбинацию столбцов в кадре данных с использованием пар() в R. Я следовал this guide и получил разброс матрица участка хорошо работает. Теперь я хочу нарисовать контуры дополнительной переменной на этих участках рассеяния.построение контуров на сетке диаграмм рассеяния с парами() в R

Пример:

data = iris # use the iris data 
head(data) 
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
1   5.1   3.5   1.4   0.2 setosa 
2   4.9   3.0   1.4   0.2 setosa 
3   4.7   3.2   1.3   0.2 setosa 
4   4.6   3.1   1.5   0.2 setosa 
5   5.0   3.6   1.4   0.2 setosa 
6   5.4   3.9   1.7   0.4 setosa 

давайте говорить, что я хочу сделать матрицу рассеяния участок со всеми комбинациями Sepal.Length, Sepal.Width и Petal.Length. Я могу сделать это легко с парами

pairs(data[ ,1:3 ]) 

, но я также хочу, чтобы построить контуры Petal.Width на каждом из этих кадров.

Я попытался

pairs(data[ ,1:3 ]) + stat_contours() 

, но я получаю

Error: non-numeric argument to binary operator 

Я предполагаю, что нет, потому что пары() больше не является объектом ggplot. Есть ли способ обойти это? Я новичок в R и ggplot, но я уверен, что последняя строка, которую я набрала, - это нонсенс.

+0

Если вы вставляете 'stat_density2d()' в код ggplot с параметрами «пар» прямо в нижней части сообщения блога, на которое вы ссылаетесь, тогда вы получите контуры в пар. – Ben

ответ

0

Вы правы. pair() - это функция из «традиционной» графической системы, тогда как ggplot основана на сетке. Я думаю, что объединение двух из них невозможно, по крайней мере, удобным способом. Попробуйте это (plotmatrix это ggplot эквивалент пар())

plotmatrix(iris[,1:3]) + stat_density2d()

Однако функция plotmatrix устарела (она до сих пор работает на моей системе - и это самое простое решение, я имею в виду .. Так что стоит попробовать)

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