[英]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.