2012-09-27 50 views
2

當我運行以下R代碼來可視化伊利諾斯州的人口密度時,地圖的底部將從圖中斬掉/裁剪。我不知道爲什麼會發生這種情況,因爲我對其他州沒有麻煩。數據可視化的問題

除此之外,您可以注意到整個繪圖向上移動。這是因爲數據中的經度和緯度值不相等嗎?

# query map and plot 
library(ggmap) 
library(ggplot2) 

# State of Illinois 
illinois <- get_map(location = "illinois ", 
      source = "stamen", zoom = 7, maptype = "toner") 
il <- ggmap(illinois) + geom_point(data=il_pop, 
     aes(x=INTPTLON, y=INTPTLAT, size=TOTPOP, colour="areaname", alpha=0.1), 
     colour="gold2") + scale_size(range=c(0,10)) 
il <- il + opts(legend.position="none") 
il 

enter image description here EDIT:這裏是與變焦= 6的輸出。這對我來說太縮小了,當我縮小時,點的位置看起來更糟。有沒有辦法讓我的縮放7並獲得一個矩形的地圖?

另外,這裏是我使用的數據:

ZCTA3 ZCTA5   AREANAME INTPTLAT INTPTLON TOTPOP POPPERSQM 
1  600 60002   ANTIOCH 42.46617 -88.09995 19350  575.3 
2  600 60004 ARLINGTON HEIGHT 42.10843 -87.97724 53118 4721.8 
3  600 60005 ARLINGTON HEIGHT 42.06933 -87.98465 28884 4465.5 
4  600 60007 ELK GROVE VILLAG 42.00598 -87.99847 35281 2265.9 
5  600 60008 ROLLING MEADOWS 42.07506 -88.02509 23406 3267.3 
6  600 60010  BARRINGTON 42.16079 -88.15231 40110  565.7 
7  600 60012  CRYSTAL LAKE 42.26564 -88.31664 10087  486.3 
8  600 60013    CARY 42.21752 -88.24339 24079 1556.7 
9  600 60014  CRYSTAL LAKE 42.22662 -88.33067 44525 1998.7 
10  600 60015  DEERFIELD 42.16933 -87.86557 27291 2174.9 

enter image description here

+1

你可以使用'dput(head(ili_pop))'發佈一些'ili_pop'數據嗎?否則,我們不能完全複製這個問題。我這樣說是因爲地圖本身的作用。 – Maiasaura

回答

4

在放大您所要求的水平,也就是地圖的程度。它位於皮奧里亞附近(顯然)。在zoom=6,你會得到你展示的程度。在zoom=7,你會得到一個更大的地理區域(當然不太詳細)。由於您的人口已經用lat/long編碼,因此您可以使用該範圍(可能使用一些填充)創建經緯度邊界框,並將其用於參數get_maplocation參數。