2012-08-28 39 views
9

Tôi có đoạn mã sau:ggmap không hiển thị bản đồ

library(ggmap) 
ggmap(get_map(location=c(lon = 5.218922, lat = 52.342366), zoom =14)) 

nào bởi tài khoản của tôi sẽ làm việc tốt, nhưng tôi chỉ nhận được một hình ảnh ggplot2 chuẩn (nền màu xám, vv), với trục đúng, nhưng không có bản đồ được hiển thị: enter image description here

Khi tôi tìm trong thư mục làm việc của mình, tôi tìm thấy một tệp có tên là "ggmapTemp" có bản đồ chính xác trong đó. Nhưng bản đồ không được hiển thị bởi ggplot2.

Tôi làm việc với RStudio và có các quyền hạn chế trên máy tính của tôi. Đây có phải là lý do bản đồ không được hiển thị chính xác không? Phiên bản RStudio của tôi là 0,96,316 và R là R-2,15,1.

> sessionInfo() 
R version 2.15.1 (2012-06-22) 
Platform: x86_64-pc-mingw32/x64 (64-bit) 

locale: 
[1] LC_COLLATE=Dutch_Netherlands.1252 LC_CTYPE=Dutch_Netherlands.1252 
[3] LC_MONETARY=Dutch_Netherlands.1252 LC_NUMERIC=C      
[5] LC_TIME=Dutch_Netherlands.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] ggmap_2.1  ggplot2_0.9.1 

loaded via a namespace (and not attached): 
[1] colorspace_1.1-1 dichromat_1.2-4 digest_0.5.2  grid_2.15.1  
[5] labeling_0.1  MASS_7.3-18  memoise_0.1  munsell_0.3  
[9] plyr_1.7.1   png_0.1-4   proto_0.3-9.2  RColorBrewer_1.0-5 
[13] reshape2_1.2.1  RgoogleMaps_1.2.0 rjson_0.2.9  scales_0.2.1  
[17] stringr_0.6  tools_2.15.1 

Cập nhật: My sessionInfo() sau khi câu trả lời 1:

sessionInfo() 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] mapproj_1.1-8.3 maps_2.2-6  ggmap_2.1  ggplot2_0.9.1 

loaded via a namespace (and not attached): 
[1] colorspace_1.1-1 dichromat_1.2-4  digest_0.5.2  grid_2.15.1   
[5] labeling_0.1  MASS_7.3-20   memoise_0.1   munsell_0.3   
[9] plyr_1.7.1   png_0.1-4   proto_0.3-9.2  RColorBrewer_1.0-5 
[13] reshape2_1.2.1  RgoogleMaps_1.2.0.2 rjson_0.2.9   scales_0.2.1  
[17] stringr_0.6.1  tools_2.15.1 

Theo yêu cầu:

capabilities() 
jpeg  png  tiff tcltk  X11  aqua http/ftp sockets libxml  fifo 
TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE 
cledit iconv  NLS profmem cairo 
TRUE  TRUE  TRUE  TRUE  TRUE 
+2

Làm việc cho tôi. Bạn có thể thêm các phiên bản R và ggmap mà bạn đang sử dụng cho câu hỏi của mình hay không. – Spacedman

+1

Mã đó hoạt động cho tôi trên bảng điều khiển R và RStudio. Tôi nhận được một bản đồ của một nơi nào đó ở Hà Lan ngay phía đông Amsterdam. – smillig

+0

Vị trí của bản đồ là chính xác. Phiên bản RStudio của tôi là 0,96,316 và R là R-2,15,1. – Timror

Trả lời

1

Tôi có lỗi này nhưng nó được giải quyết bây giờ mà tôi nâng cấp lên phiên bản mới nhất của ggmap (V2.3)

+0

Tôi gặp sự cố tương tự, cập nhật lên phiên bản mới nhất (2.7) không được trợ giúp - cũng không cài đặt từ Github. – heights1976

7

Trên máy tính của tôi, danh sách các gói kèm theo là:

other attached packages: 
[1] mapproj_1.1-8.3 maps_2.2-6  ggmap_2.1  ggplot2_0.9.1 

Điều này có nghĩa là bạn có thể cần mapproj cũng như maps để chạy mã của mình vì đây là các gói được đề xuất từ ​​ggplot để cho phép chiếu bản đồ chính xác.

Hãy thử:

install.packages(c("mapproj", "maps")) 

sau đó chạy lại mã của bạn.

+2

Thực ra, tôi rất ngạc nhiên khi OP không nhận được lỗi mà không cài đặt 'mapproj'. Tôi đã không có nó được cài đặt và nó đã đề cập rằng 'mapproj' đã được yêu cầu để làm điều này, nhưng nó đã làm việc tốt sau khi cài đặt nó (do đó nhận xét của tôi). – A5C1D2H2I1M1N2O1R2T1

+0

Cảm ơn bạn đã đề xuất. Thật không may, nó không giải quyết được vấn đề của tôi. Tôi vẫn nhận được kết quả tương tự sau khi cài đặt cả hai gói. Tôi cũng đã cập nhật tất cả các gói khác của mình. – Timror

+3

Tôi có cùng một vấn đề, khi tôi sử dụng tên tập tin tùy chọn cho get_map và đi đến thư mục tập tin được lưu hình ảnh bản đồ là có - nó chỉ không âm mưu khi tôi sử dụng ggplot (bản đồ). Tôi đang gặp sự cố – user1414259

-2

Vì vậy, nếu bạn là người dùng RStudio như bản thân mình, bạn phải nhớ rằng mã trong một. R hoạt động hơi khác so với mã chạy từ dòng lệnh R. Mã bên dưới, được lấy từ Max Marchi's R blog, hoạt động hoàn hảo nếu được thực thi từ dòng lệnh.

library(ggmap) 
library(mapproj) 
map <- get_map(location = 'England', zoom = 7) 
ggmap(map) 

Tuy nhiên, hãy lấy cùng một mã ở trên và đặt nó vào trong .R trong RStudio và kết quả sẽ là một cửa sổ trống nơi bản đồ được mong đợi xuất hiện. Để khắc phục sự cố này, hãy đặt ggmap(map) bên trong số print() như mã bên dưới.

library(ggmap) 
library(mapproj) 
map <- get_map(location = 'England', zoom = 7) 
print(ggmap(map)) 

Đoạn mã trên phải tạo bản đồ Anh trong cửa sổ vẽ đồ thị. Ít nhất nó có nghĩa với tôi.

Giải thích của tôi về điều này có thể không chính xác, vì vậy đừng giữ tôi. Vì RStudio chạy trên đầu R, bạn cần nói rõ ràng với RStudio rằng một số lệnh nhất định là các lệnh dòng và cần được xử lý như vậy. Bằng cách đặt lệnh dòng bên trong của print(), RStudio biết thực hiện lệnh đó trong dòng lệnh của R.

Tôi hoan nghênh nhận xét và giải thích rõ hơn về những gì đang diễn ra.

+0

Đây không phải là vấn đề người dùng gặp phải. Bạn cần gọi 'print' khi chạy mã gọi mã trellis/lattice/ggplot từ nguồn, xem: Gọi' print' không phải là vấn đề liên quan đến RStudio. Xem: http://stackoverflow.com/questions/6783120/r-package-lattice-wont-plot-if-run-using-source. Khi bạn không gọi 'in', không có gì hiển thị cả. Trong trường hợp này, người dùng sẽ nhận được một cửa sổ ggplot trống. –

+0

không phải là vấn đề RStudio và không liên quan đến câu hỏi – RockScience

0

Tôi gặp vấn đề tương tự. Cài đặt lại ggmap đã khắc phục được sự cố.

0

Trong trường hợp của tôi, giải pháp là đồ họa. Một cái gì đó đã thay đổi độ sâu màu của tôi thành 16-bit, do đó thay đổi thành vấn đề giải quyết 32 bit.

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