Объедините координаты_процесса и geom_raster

Я ищу способ построения растровых данных (используя ggplot а также geom_raster) на небольшой карте. Я хотел бы использовать ggalt а также coord_proj "увеличить" в определенных областях шейп-файла, но я сталкиваюсь с ошибкой geom_raster only works with Cartesian coordinates

ggplot() +
    geom_polygon(data = land_df, aes(long, lat, group = group), fill = 'grey25')+
    geom_raster(data = df, aes(lon_bin, lat_bin, fill = sum_hours)) +
    coord_proj(xlim = c(-67, -63),ylim = c(0, 9))

Есть ли еще один простой способ генерирования увеличенного изображения в растровых картах с использованием координаты_процесса и устранения этого ограничения, что geom_raster работает только с декартовыми координатами?

Другие варианты, которые я могу придумать, - это генерировать отдельные шейп-файлы для каждой "увеличенной" области, но я строю графики для многих из этих растров и предпочел бы не создавать отдельные шейп-файлы для каждого, а вместо этого использовать ordin_proj для программного задания пределов карты растра.,

Спасибо

1 ответ

Решение

Я думаю, что вам нужно использовать geom_tile() вместо geom_raster(), geom_raster() внутренне использует rasterGrob, который является растровым изображением, которое может быть масштабировано только линейно. Отсюда ограничение на декартовы системы координат. geom_tile() рисует отдельные прямоугольники, которые можно преобразовать в любую систему координат.

У меня нет вашего набора данных, но я могу показать очень простой пример:

df <- data.frame(x = 1:100) # a very simple dataset

p_raster <- ggplot(df, aes(x, fill = x, y = 0)) + 
  geom_raster() + 
  scale_fill_distiller()

p_raster

p_raster + coord_polar()
## Error: geom_raster only works with Cartesian coordinates

Теперь с geom_tile():

# for geom_tile(), map both fill and color to avoid drawing artifacts
p_tile <- ggplot(df, aes(x, color = x, fill = x, y = 0)) + 
  geom_tile() + 
  scale_fill_distiller() +
  scale_color_distiller()

p_tile

p_tile + coord_polar()

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