Densityplots, используя colwise - разные цвета для каждой линии?

Мне нужен участок разной плотности линий, каждая в другом цвете. Это пример кода (но гораздо меньше) с использованием встроенного 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 ответ

Решение

Я не совсем следую вашему примеру, поэтому я создал свой собственный набор данных для примера. Сначала создайте матрицу из трех столбцов:

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

получить:

Другие вопросы по тегам