2013-02-25 36 views
15

Tôi muốn có một bản đồ với các điểm (và các lớp geom_ * khác) trên đó. Tôi nhận được bản đồ, nhưng thay vì những điểm tất cả tôi nhận được là một lời cảnh báo:Tạo một bản đồ với các điểm, sử dụng ggmap và ggplot2

Message d'avis : 
Removed 3 rows containing missing values (geom_point). 

Dưới đây là một ví dụ tái sản xuất:

library(ggmap) 
library(ggplot2) 

d <- data.frame(lat=c(50.659631, 50.607213, 50.608129), 
       lon=c(3.09319, 3.011473, 3.031529)) 

Lille <- get_map("Lille,France", zoom=12) 

p <- ggmap(Lille) 
p <- p + geom_point(data=d, aes(lat, lon)) 
p 

Nhìn ở đầu ra của

ggplot_build(p) 

tôi xem một lớp với NA cho x và y, nhưng tôi không hiểu tại sao dữ liệu từ d không được xem xét.

Khi sử dụng ggplot() thay vì ggmap(), tôi nhận được điểm. Nhưng tôi cũng cần bản đồ :)

Vì vậy, làm cách nào để có được một bản đồ với điểm?

Cảm ơn

Trả lời

18

Giá trị kinh độ và vĩ độ của bạn ở geom_point() sai thứ tự. lon phải là x giá trị và lat làm giá trị y.

p + geom_point(data=d, aes(x=lon, y=lat),size=5) 
21

Có vẻ như bạn chỉ cần đảo ngược kinh độ và vĩ độ:

p <- ggmap(Lille) 
p + geom_point(data=d, aes(x=lon, y=lat), color="red", size=30, alpha=0.5) 

enter image description here

+0

Yeah, tôi chắc chắn rằng có một giải pháp đơn giản :) – Costin

+0

@Costin Hãy chấp nhận Didzis Elferts' câu trả lời thay vì của tôi, tôi nghĩ anh ta đã trả lời trước. – juba

+0

OK, tôi thấy thông báo của bạn được liệt kê đầu tiên, nhưng nếu bạn nói vậy tôi sẽ chấp nhận câu trả lời của anh ấy. Bạn phải ở trong cùng một giây, tôi đoán :) – Costin

Các vấn đề liên quan