2012-04-24 70 views
14

Tôi đang cố gắng vẽ mẫu Google map được truy vấn bằng gói RgoogleMaps và kết hợp nó với ggplot. Cuối cùng, tôi muốn hiển thị tổng dân số bằng cách sử dụng geom_point, tương tự như hình dưới đây tuy nhiên tôi đang cố gắng tập trung vào vùng Montgomery vì âm mưu quá mức.Vẽ bản đồ google bằng ggplot trong R

Tôi thất vọng vì tôi không thể vẽ bản đồ được truy vấn của mình trong R. Tôi đã thử một vài gói như read.jpegpng nhưng không hoàn toàn hiệu quả.

mã R:

#query google map 
al1 <- GetMap(center=c(32.362563,-86.304474), zoom=11, destfile = "al2.jpeg", 
     format="jpg",maptype="roadmap") 

#load only specific states 
alabama <- subset(all_states, region %in% c("alabama")) 

#population 
p1 <- ggplot() 
p1 <- p1 + geom_polygon(data=alabama, 
     aes(x=long, y=lat, group=group), colour="white", fill="grey10") 
p1 <- p1 + geom_point(data=quote, aes(x=IntPtLon, y=IntPtLat, size=TotPop, 
     color=TotPop),colour="coral1") + scale_size(name="Total Pop") 

enter image description here

EDIT:

Dưới đây là kết quả thô của tôi. Tôi vẫn muốn:

  • Thay đổi quy mô kích thước của dấu chấm vì chúng có vẻ khá nhỏ trên bản đồ.
  • Làm cho các chấm trong suốt hoặc không được lấp đầy để bản đồ vẫn hiển thị.

enter image description here

al1 <- get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11, maptype = 'terrain') 
al1MAP <- ggmap(al1)+ geom_point(data=quote_mgm, aes(x=IntPtLon, y=IntPtLat, size=TotPop)) 
+4

bạn có thể muốn kiểm tra ggmap và OpenStreetMap gói, cả hai đều hỗ trợ raster ggplot2 âm mưu –

+3

Dưới đây là một ví dụ tốt đẹp từ wiki mà có thể có ích cho kiểm tra: https://github.com/hadley/ggplot2/wiki/Crime-in-Downtown-Houston%2C-Texas-%3A-Combining-ggplot2-and-Google-Maps –

+0

aha! Tôi chỉ tìm thấy trang web này và nhận được câu trả lời của tôi. Nhược điểm là nó mất một thời gian để âm mưu vì vậy tôi sẽ kiểm tra ggmap và OSM. Cảm ơn bạn! – Ken

Trả lời

24

Đây có phải là những gì bạn đang sau. Nó sử dụng gói ggmap, giúp đơn giản hóa quy trình. Xem ?get_map?ggmap để có thêm tùy chọn. Một nguồn tài nguyên tuyệt vời có sẵn trong The R Journal

library(ggmap) 
al1 = get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11, maptype = 'roadmap') 
al1MAP = ggmap(al1) 
al1MAP 

enter image description here

+0

Vâng, ngoài việc này, tôi muốn vẽ dấu chấm trên đầu của bản đồ này (có thể sử dụng geom_point) nhưng đồng thời tôi muốn làm cho nó trực quan hấp dẫn. Tôi không muốn các dấu chấm của mình ẩn/che giấu thông tin bản đồ hiện có. Bất kỳ ý tưởng? – Ken

+0

làm cho các dấu chấm nửa trong suốt? –

+0

Bạn có thể thêm các lớp bổ sung vào al1Map bằng cách sử dụng các ggplot2 thông thường. Vì vậy, để thêm điểm, sau đó một cái gì đó như 'al1MAP + geom_point (dữ liệu = dữ liệu, aes (x = x, y = y))' sẽ làm. Đối với không muốn bao gồm thông tin bản đồ hiện tại - Tôi không thể giúp bạn ở đó. Có thể bạn có thể thử các kiểu bản đồ khác nhau, để tìm một thứ có chứa ít chi tiết hơn. –

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