使用R中的pair()绘制散点图网格上的轮廓

时间:2013-11-18 07:49:04

标签: r ggplot2

我已经取得了一些成功,使用R中的pairs()显示数据框中每列的每个组合的散点图网格。我跟着this guide并使得散点图矩阵运行良好。现在我想在这些散点图上绘制另一个变量的轮廓。

示例:

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

我假设那是因为pairs()不再是ggplot对象。有没有解决的办法?我是R和ggplot的新手,但我很确定我输入的最后一行是无意义的。

1 个答案:

答案 0 :(得分:0)

你是对的。 pairs()是来自“传统”图形系统的函数,而ggplot基于网格。我认为将两者结合起来是不可能的,至少在方便的方面。试试这个(plotmatrix是ggplot等价于pairs())

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

然而,plotmatrix函数已被弃用(它仍然在我的系统上运行 - 这是我想到的最简单的解决方案......所以值得尝试一下)