簡體   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