gpt4 book ai didi

r - 结合 coord_proj 和 geom_raster

转载 作者:行者123 更新时间:2023-12-02 03:07:44 27 4
gpt4 key购买 nike

我正在寻找一种在小比例 map 上绘制栅格数据的方法(使用 ggplotgeom_raster )。我想使用ggaltcoord_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))

是否有另一种简单的方法可以使用 coord_proj 生成放大的栅格 map 并避免 geom_raster 仅适用于笛卡尔坐标的限制?

我能想到的其他选项是为每个“放大”区域生成单独的形状文件,但我正在绘制许多这些栅格,并且不想为每个栅格生成单独的形状文件,而是使用 coord_proj 以编程方式指定栅格 map 限制。

谢谢

最佳答案

我认为您需要使用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

enter image description here

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

enter image description here

p_tile + coord_polar()

enter image description here

关于r - 结合 coord_proj 和 geom_raster,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48173731/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com