在绘制等高线图时获得错误(if(any(h <= 0))停止时出错(“带宽必须严格为正”):在R中

时间:2015-06-29 14:58:22

标签: r ggplot2 ggmap

以下数据

const

我使用ggmap

创建了一个地图
       > head(df)

      Date Longitude Latitude Elevation Max.Temperature Min.Temperature Precipitation     Wind Relative.Humidity    Solar  RO
     1 2014-07-01   77.1875  7.96184     -9999          27.725          26.673  16.115560560 8.395378         0.8132272 23.08192 Yes
     2 2014-07-02   77.1875  7.96184     -9999          27.931          26.897   0.700378560 8.062267         0.8074675 21.48473 Yes
     3 2014-07-03   77.1875  7.96184     -9999          28.179          26.686   0.000000000 9.465022         0.8107901 24.14900  No
     4 2014-07-04   77.1875  7.96184     -9999          27.657          26.545   0.003433226 9.397203         0.8195020 23.42036 Yes
     5 2014-07-05   77.1875  7.96184     -9999          27.157          26.490   1.541518560 8.903047         0.8385059 23.90545 Yes
     6 2014-07-06   77.1875  7.96184     -9999          27.308          26.481   0.000000000 8.617348         0.8205267 23.96318  No

绘制轮廓图

     > Precip_map<-get_map(location="india",maptype="satellite",zoom=12)

        Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=india&zoom=12&size=640x640&scale=2&maptype=satellite&language=en-EN&sensor=false

     > ggmap(Precip_map, extent = "device") + geom_point(aes(x = Longitude, y = Latitude), colour = "red", 
     +     alpha = 0.1, size = 2, data = df)

     Warning message:
    In loop_apply(n, do.ply) :
    Removed 1106 rows containing missing values (geom_point).

我不确切知道我缺少的地方..我是这个地图的新手......请帮助我。另外,我想在此等高线图中绘制df $ Precipitation。

1 个答案:

答案 0 :(得分:5)

整个数据集中的lat, long值相同。因此,latlong方向的方差均为零,因此无法计算核密度估计(KDE)的带宽。

因此,您收到错误bandwidths must be strictly positive

为了计算二维KDE,x和y方向的方差需要为正。您得到的错误是两次,因为两个方向的方差均为0。