Заполненный контурный график с помощью R/ggplot/ggmap

У меня возникают проблемы при построении контура с закрашенными контурами поверх карты с помощью ggmap/ggplot2 в R.

Мои данные регулярно располагаются по координатам широты / долготы, а значение z указывает на количество осадков

> head( flood )
   lat       lon         rain
1 22.51916 -105.9318 1.486188e-05
2 22.59956 -105.9318 1.735962e-05
3 22.67996 -105.9318 2.024598e-05
4 22.76037 -105.9318 2.357599e-05
5 22.84077 -105.9318 2.741153e-05
6 22.92117 -105.9318 3.182212e-05

Получив базовую карту с помощью ggmap, я пытаюсь вывести закрашенные контуры дождя

map = ggmap( baseMap ) + 
    geom_contour( data = flood, aes( x = lon, y = lat, z = rain ) ) +
    scale_fill_continuous( name = "Rainfall (inches)", low = "yellow", high = "red" ) 

Это дает мне ошибку

Error in unit(tic_pos.c, "mm") : 'x' and 'units' must have length > 0

Если я сделаю

map = ggmap( baseMap ) + 
    geom_contour( data = flood, aes( x = lon, y = lat, z = rain, fill = ..level.. ) ) +
    scale_fill_continuous( name = "Rainfall (inches)", low = "yellow", high = "red" ) 

Я получаю этот сюжет без фактического заполнения.введите описание изображения здесь

Я пытался следить за этим постом и за этим постом, но я не могу понять это правильно для моей проблемы. Я не знаю много о ggplot/R, но до сих пор мне удавалось пройти через это. Что значит.. уровень.. значит?

Я думаю, что этот пост может быть связан, но я не могу обобщить исправление для работы для контурных графиков.

1 ответ

Решение

Невозможно протестировать без более представительного набора данных (можете ли вы предоставить ссылку?).

Тем не менее, попробуйте:

## not tested..
map = ggmap( baseMap ) + 
    stat_contour( data = flood, geom="polygon", 
                  aes( x = lon, y = lat, z = rain, fill = ..level.. ) ) +
    scale_fill_continuous( name = "Rainfall (inches)", low = "yellow", high = "red" ) 

Проблема в том, что geom_contour не уважает fill=..., Вам нужно использовать stat_contour(...) с geom="polygon" (а не "линия").

Другие вопросы по тегам