密度图使用colwise - 每行不同的颜色?

时间:2013-05-08 10:44:03

标签: r plyr kernel-density

我需要一个不同密度线的图,每个线都是另一种颜色。这是一个示例代码(但要小得多),使用内置的data.fame USArrests。我希望可以使用它吗?

colors <- heat.colors(3)  
plot(density(USArrests[,2], bw=1, kernel="epanechnikov", na.rm=TRUE),col=colors[1])     
lines1E <- function(x)lines(density(x,bw=1,kernel="epanechnikov",na.rm=TRUE))    
lines1EUSA <- colwise(lines1E)(USArrests[,3:4])`  

目前,代码只生成colwise()一种颜色。如何让每一行都有另一种颜色?或者有更好的方法来绘制不同颜色的几条密度线?

1 个答案:

答案 0 :(得分:0)

我不太关注你的例子,所以我创建了自己的示例数据集。首先,创建一个包含三列的矩阵:

m = matrix(rnorm(60), ncol=3)

然后绘制第一列的密度:

plot(density(m[,1]), col=2)

使用lines1E功能作为模板:

lines1E = function(x) {lines(density(x))}

我们可以在图中添加多条曲线:

colwise(lines1E)(as.data.frame(m[ ,2:3]))

就个人而言,我只会使用:

##Added in NA for illustration
m = matrix(rnorm(60), ncol=3)
m[1,] = NA
plot(density(m[,1], na.rm=T))
sapply(2:ncol(m), function(i) lines(density(m[,i], na.rm=T), col=i))

得到:

enter image description here