删除 ggplot 地图/choropleth 中的边界线

Posted

技术标签:

【中文标题】删除 ggplot 地图/choropleth 中的边界线【英文标题】:Remove border lines in ggplot map/choropleth 【发布时间】:2014-11-10 14:56:21 【问题描述】:

我想删除 ggplot 中生成的等值线区域之间的线。我的问题是由一张非常大的地图引发的,该地图具有非常小的区域(人口普查块组),这些区域非常多,鉴于边界的密度,不可能看到填充形状的颜色。我在 ggplot2 版本 1.0.0 的 Mac 上使用更新的 RStudio; Windows 上似乎没有出现同样的问题。

以下示例(使用县)为每个县使用不同的颜色,因此不需要边界。第一个使用紫色边框来强调。第二个有 color = NA 这是我尝试消除所有边界的失败。

library("ggplot2")
library("maps")
tn = map_data("county", region = "tennessee")
ggplot(tn, aes(x = long, y = lat, group = group)) + 
  geom_polygon(aes(fill = group), color = "purple")

ggplot(tn, aes(x = long, y = lat, group = group)) + 
  geom_polygon(aes(fill = group), color = NA)

【问题讨论】:

color = NA 对我来说很好。 它会移除紫色,但不会移除多边形之间的空间。 它对我有用,也许你可以用color = NA 发布你的代码和绘图。另外,请确保您使用的是最新版本的ggplot2 color=NA 对我有用,lwd=0 也是如此。事实上,即使颜色是紫色,设置 lwd=0 也有效。这真的是灰色轮廓还是由于多边形绘图中的亚像素精度问题而显示的背景?如果您在红色背景上执行此操作会怎样? 【参考方案1】:

另一个选项是将填充和颜色都设置为组,这在我尝试过的 macOS 上有效:

library("ggplot2")
library("maps")
tn = map_data("county", region = "tennessee")
ggplot(tn, aes(x = long, y = lat, group = group)) + 
  geom_polygon(aes(fill = group, color = group))

输出:

【讨论】:

【参考方案2】:

我可以确认它是特定于 Mac 的。只是试图做同样的事情,'colors=NA' 在 Mac 上的 R Studio 中没有明显的效果,边框仍然显示。刚在 Windows 上加载项目,边框就消失了。

作为参考,我的设置:Mac 在 Mac OS X 10_10_1 (Yosemite) 上运行 R Studio 0.98.1074。 Windows 在 Windows 7 上运行 R Studio 0.98.1073。

【讨论】:

附加说明。即使在 Windows 上,导出为 PDF 也会使边框(或原本会出现的间隙)可见。在屏幕视图上导出为 PNG 匹配项,不显示边框或间隙。甚至尝试添加 size=0 但没有任何区别【参考方案3】:

设置color = NA 对我有用:

ggplot(tn, aes(x = long, y = lat, group = group)) + 
    geom_polygon(aes(fill = group), color = NA) +
    coord_map()

生成此图,多边形之间没有空格。

我使用的是ggplot2 1.0.0 版。

我添加了coord_map 以使其具有正确的纵横比。在我的机器上,这不会影响边框,我不确定为什么在您的第二篇文章中可以看到边框。这是我的:

ggplot(tn, aes(x = long, y = lat, group = group)) + 
  geom_polygon(aes(fill = group), color = NA)

【讨论】:

太好了,看起来很棒。重要的是要注意它适用于您考虑到添加了我没有的其他代码 奇怪的是它也不能在我的电脑上工作。我有 1.0.0 版,有最新更新。我在 Mac 上;这是潜在的并发症吗? 也许吧?你在使用 RStudio 吗?尝试另存为 PDF 并查看结果。 与 pdf 相同。是的 RStudio。我还注意到我们的颜色略有不同......它很微妙,但可能表明平台的真正差异。 我在 Windows 上使用 RStudio。你可以试试cairoDevice?我不太确定。可能最好的办法是将这些详细信息重新编辑到您的问题中,这也会将其推到活动问题列表的顶部。

以上是关于删除 ggplot 地图/choropleth 中的边界线的主要内容,如果未能解决你的问题,请参考以下文章

R中的地热图

R中的美国Choropleth地图

如何使用 tmap 在 choropleth 地图中舍入整数中断

使用美国县级数据创建 Choropleth 地图

Plotly:如何在 Choropleth 地图上显示州线

folium Choropleth 世界地图:国家/地区的默认值