#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
, чтобы понять, как это контролировать. Не должно быть необходимости извлекать значения пикселей, вычислять диапазон значений и т.д.