[英]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=
美学设置为states
或states$group
中group
列的值。”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.