【问题标题】:ggplot geom_polygon connections false if xlim/ylimggplot geom_polygon 连接 false 如果 xlim/ylim
【发布时间】:2018-04-21 19:56:34
【问题描述】:

我正在尝试使用 ggplot 将热图绘制到地图上(效果很好),但如果我限制轴,我的 geom_polygon 叠加层会以错误的方式连接这些点。

ggplot(2017.fixes, aes(x=Long, y=Lat) ) +
    stat_density_2d(aes(fill = ..density..), geom = "raster", contour=F)+
    scale_fill_distiller(palette="PuBu", direction=1) +
    geom_polygon (data=map.df,aes(x=long, y=lat,group=group), color="grey50", fill="grey", na.rm=T) +
    #xlim(-156.95, -156.4)+
    #ylim(20.55, 21.05 )+
    coord_fixed()

产生这个:

但如果我取消注释 xlim 和 ylim 我会得到:

它显然正确地切断了左岛,但没有切断其他两个岛,我也不知道为什么。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    代替

    xlim(-156.95, -156.4) +
    ylim(20.55, 21.05) +
    coord_fixed()
    

    用途:

    coord_cartesian(xlim = c(-156.95, -156.4), ylim = c(20.55, 21.05)) +
    

    这会限制坐标轴而不删除数据。

    http://ggplot2.tidyverse.org/reference/coord_cartesian.html


    也可以尝试coord_map 绘制地图。

    https://ggplot2.tidyverse.org/reference/coord_map.html


    【讨论】:

    • 谢谢!但是,当我使用它时,它仍然会生成第一个完整区域的图。如果我取出 coord_fixed(),它会限制轴,但都会失真。我认为这是因为它适合正方形而不是坐标创建的原始矩形。有没有办法保持纵横比?
    • 那是因为coord_fixed 覆盖了coord_cartesian。您可以通过确保轴限制等距来解决此问题。但是,对于绘制地理数据,您可以尝试coord_mapggplot2.tidyverse.org/reference/coord_map.html 。如果不创建一个我们可以使用您的数据的可重复示例,就很难提出建议。
    猜你喜欢
    • 2018-09-26
    • 2020-11-25
    • 2012-07-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多