Легенда цветовой полосы для функции kernel2d

#r #spatial #kernel-density #spatstat

Вопрос:

Я использовал spatstat пакет и kernel2d() функцию для создания карты плотности ядра точечных данных для случаев заболеваний в DRC

 kern <- kernel2d(pts, ply, bdw, kernel='quartic')
# plot
plot(ProvinceBorders)
image(kern, add=TRUE)
 

Как мне получить легенду цветовой полосы? Я знаю kern$z , что у меня будут свои ценности, поэтому я могу найти максимум и минимум, и я знаю, что людям нравится colorRampPalette() и все такое, но мне очень нравятся эти цвета по умолчанию, и я даже не уверен, во сколько цветовых «ведер» они отсортированы, что требуется для многих DIY и RcolorBrewer решений.

Спасибо! Карта

Ответ №1:

Если вы действительно используете spatstat то, что пишете, вы могли бы сделать что-то вроде:

 library(spatstat)
X <- as.ppp(pts, W = ply) ## Requires pts is a data.frame with coords, and ply is an owin object
kern <- density(X, sigma = bdw, kernel='quartic') # Require bdw to be given as a number
# plot
plot(kern) # Automatic color scale
plot(ProvinceBorders, add=TRUE) # Requires ProvinceBorders to be a tess object
 

Комментарии:

1. о да, упс kernel2d в splancs посылке… Я думаю, мне нужно заглянуть под капот и посмотреть, одинаковы ли они.

Ответ №2:

kernel2d является функцией в splancs пакете. Это несовместимо с spatstat .

Аналогичная функция в spatstat пакете , которая вычисляет оценку интенсивности ядра density.ppp , является методом для общей функции density .

Результатом density.ppp является пиксельное изображение (класс im ), которое можно сразу же построить с помощью plot.im метода для общего plot . По умолчанию вывод plot.im включает цветовую шкалу в правой части изображения. Вы можете прочитать онлайн-справку plot.im , чтобы понять, как это контролировать. Не должно быть необходимости извлекать значения пикселей, вычислять диапазон значений и т.д.