繁体   English   中英

ggplot2 使用 geom_point 在 map 上绘制坐标,点之间出现不需要的线条

[英]ggplot2 plotting coordinates on map using geom_point, unwanted lines appearing between points

我正在尝试使用 ggplot2 在美国的 map 上 plot 一组纬度/经度坐标,这是我的代码:

states <- map_data("state")
usamap <- ggplot(states, aes(long, lat, group=1)) +
  geom_polygon(fill = "white", colour = "black") + 
  geom_point(data = data_masks2, aes(x = lng, y = lat), alpha = 1, size = 1) +
  theme_cowplot()

但是,当我 plot usamap时,我发现连接一些点的奇怪线(见下文),我不确定为什么。 为什么会出现这些,我该如何摆脱它们?

在此处输入图像描述

提前致谢

这里有一个非常有用的小插图可用于创建 maps ,但问题在于您的geom_polygon()行。 你肯定需要这个(因为它是负责绘制你的 state 线的东西),但你有group=审美错误。 您需要设置group=group才能正确绘制线条:

ggplot(states, aes(long, lat, group=group)) +
  geom_polygon(fill = "white", colour = "black")

在此处输入图像描述

如果你使用group=1 ,你会得到以下行:

ggplot(states, aes(long, lat, group=1)) +
  geom_polygon(fill = "white", colour = "black")

在此处输入图像描述

为什么会这样? 好吧,这就是geom_polygon() (以及一般的ggplot )的工作原理。 group= esthetic 告诉ggplot的“组合”。 geom_polygon()的情况下,它告诉ggplot需要连接哪些点集合才能绘制单个多边形——在这种情况下是单个 state。 当您设置group=1时,您将数据集中的每个点分配为属于同一个 polygon 信不信由你,带有奇怪线条的 map 实际上是由一个多边形组成的,其中的点在呈现时按顺序绘制。

查看您的states数据集,您将看到states$group ,它专门用于允许您将属于每个 state 的点组合在一起。 因此,我们得出了一个有点令人困惑的说法: group=group 这意味着“将group=美学设置为statesstates$groupgroup列的值。”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM