stat_density2d: 删除了包含非有限值的行

7

您好~我看到有关此事的一些讨论,但似乎没有多少答案。因此,我在城市地图上绘制了密度/热力图。

df = data.frame(lon=rnorm(1000, mean=-87.62, sd=0.01), 
                lat=rnorm(1000, mean=41.88, sd=0.01))


map = get_googlemap('chicago', zoom=14, color='bw')

ggmap(map, extent='device') +
  stat_density2d(
    aes(x=lon, y=lat, fill=..level.., alpha =..level..),
    size = 2, bins = 4, 
    data = df,
    geom = "polygon"
  ) +
  scale_fill_gradient(low='green', high='red') +
  scale_alpha(guide=FALSE)

虽然能够绘制,但是显示出了以下问题:

Warning message:
Removed 96 rows containing non-finite values (stat_density2d).

使用真实城市犯罪数据,它实际上报告删除了大部分行。这让我担心,也许绘图不反映真实的分布情况。

这是什么意思?我应该担心绘图是否反映数据吗?谢谢!

2个回答

16

我认为这意味着你的一些数据超出了地图的范围。

在运行上述代码后,对我而言,这个数字与地图警告中排除的行数相匹配。

bb <- attr(map, "bb")

sum(df$lat < bb$ll.lat | 
    df$lat > bb$ur.lat | 
    df$lon < bb$ll.lon | 
    df$lon > bb$ur.lon)

1

这也可能是因为您的绘图所使用的变量中存在一些缺失值。使用 is.na(dataframe$variable) 进行检查将有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接