问题描述
我使用 spatstat
包和 kernel2d()
函数制作了刚果民主共和国疾病病例点数据的核密度图
kern <- kernel2d(pts,ply,bdw,kernel='quartic')
# plot
plot(ProvinceBorders)
image(kern,add=TRUE)
如何获得颜色条图例?我知道 kern$z
会有我的值,所以我可以找到最大值和最小值,我知道人们喜欢 colorRampPalette()
和类似的东西,但我非常喜欢这些默认颜色,我什至不确定有多少颜色它们被归类到“桶”中,这是许多 DIY 和 RcolorBrewer
解决方案所需要的。
解决方法
如果你真的在写作时使用 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
,
kernel2d
是 splancs
包中的一个函数。它与 spatstat
不兼容。
spatstat
包中计算强度核估计的类似函数是 density.ppp
,这是通用函数 density
的一种方法。
density.ppp
的结果是一个像素图像(im
类),可以使用 plot.im
(通用 plot
的一种方法)立即绘制。默认情况下,plot.im
的输出包括图像右侧的色阶。您可以阅读 plot.im
的在线帮助以了解如何控制它。
应该不需要提取像素值、计算值的范围等。