如果xlim / ylim,则ggplot geom_polygon连接为false

时间:2018-04-21 19:56:35

标签: r ggplot2

我试图使用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()

产生这个:

Complete map

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

Zoomed in map

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

1 个答案:

答案 0 :(得分:5)

而不是

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