nasıl R 50 eyalet harita yapabilirim (yerine sadece alt-48) 50 eyalet harita oluşturulur?nasıl
Tüm örnekteki gibi yarattık insanlar sizin için yararlı olabilir sadece alt 48
nasıl R 50 eyalet harita yapabilirim (yerine sadece alt-48) 50 eyalet harita oluşturulur?nasıl
Tüm örnekteki gibi yarattık insanlar sizin için yararlı olabilir sadece alt 48
This R-bloggers link vardır haritalar gibi görünüyor.
sana bir görünüm vermek için,
library(maps)
map("world", c("USA", "hawaii"), xlim = c(-180, -65), ylim = c(19, 72))
İster inanın ister inanmayın, Hawaii orada üzerindedir ile 50 devlet haritasında başlayabilirsiniz. Kenar boşlukları yüzünden gerçekten çok küçük.
Bunu yapmanın birçok yolu vardır. Şahsen, Google’ın en çekici haritalara sahip olduğunu düşünüyorum. ggmap
, googleVis
ve/veya RgoogleMaps
'u öneririm. Örneğin
:
require(googleVis)
G4 <- gvisGeoChart(CityPopularity, locationvar='City', colorvar='Popularity',
options=list(region='US', height=350,
displayMode='markers',
colorAxis="{values:[200,400,600,800],
colors:[\'red', \'pink\', \'orange',\'green']}")
)
plot(G4)
bu üretir:
maps
nasıl içe gösterir this tutorial yaklaşımını takip etmektir daha size daha çekici bir sonuç verecektir başka yaklaşım Inkscape'den (veya eşdeğerde, Adobe Illustrator'dan) çizim yapmak için R'ye özel haritalar.
library(choroplethr)
library(ggplot2)
library(devtools)
install_github('arilamstein/[email protected]')
library(choroplethrZip)
data(df_zip_demographics)
df_zip_demographics$value = df_zip_demographics$percent_asian
zip_map = ZipChoropleth$new(df_zip_demographics)
zip_map$ggplot_polygon = geom_polygon(aes(fill = value),
color = NA)
zip_map$set_zoom_zip(state_zoom = NULL,
county_zoom = NULL,
msa_zoom = NULL,
zip_zoom = NULL)
zip_map$title = "50 State Map for StackOverflow"
zip_map$legend = "Asians"
zip_map$set_num_colors(4)
choro = zip_map$render()
choro
data(df_pop_state)
outline = StateChoropleth$new(df_pop_state)
outline = outline$render_state_outline(tolower(state.name))
choro_with_outline = choro + outline
choro_with_outline
verir:
İşte
choroplethr
ve ggplot2
ile buna bir yolu şudur:
Böyle bir şey ile bitireceğiz
Güncelleme: Bu çözüme eşlik edecek bir blog yazısı yazdım http://hack-r.com/?p=507 –
Sen maptools paketinde state.vbm
haritası, bu 50 eyalette kapsar ve daha görünür daha küçük devletler yapar kullanarak düşünebilirsiniz (renklendirme, ya da her duruma araziler eklemek için çalışıyor, ancak siteler arasında mesafeler kesin olmayacak) .
Diğer bir seçenek açık alanlar Konya ve Kayseri kendiniz ekleyin ardından, bitişik 48 eyalet çıkarmaktır. Bunu yapmak için bir seçenek, TeachingDemos paketinden subplot
işlevini kullanmaktır. Sadece devletler için uygun şekil dosyaları bulmak gerekir
library(maptools)
library(TeachingDemos)
data(state.vbm)
plot(state.vbm)
yy <- readShapePoly(system.file("shapes/co37_d90.shp", package="maptools")[1])
zz <- readShapePoly(system.file("shapes/co51_d90.shp", package="maptools")[1])
xx <- readShapePoly(system.file("shapes/co45_d90.shp", package="maptools")[1])
plot(yy)
par('usr')
subplot(plot(zz), c(-84,-81), c(31,33))
subplot(plot(xx), c(-81, -78), c(31,33))
: Burada
maptools paket tarafından sağlanan shapefile bir çift kullanarak bazı örnek kodudur. hala kabul edilen bir yanıt olmadığı içineski iplik kurtarılıyor.
Kontrol dışarı @ hrbrmstr en albersusa
paketi:
devtools::install_github("hrbrmstr/albersusa")
library(albersusa)
plot(usa_composite(proj="laea"))
üretir ve çok daha fazlası
us <- usa_composite()
us_map <- fortify(us, region="name")
gg <- ggplot()
gg <- gg + geom_map(data=us_map, map=us_map,
aes(x=long, y=lat, map_id=id),
color="#2b2b2b", size=0.1, fill=NA)
gg <- gg + theme_map()
gg +
geom_map([email protected], map=us_map,
aes(fill=pop_2014, map_id=name),
color="white", size=0.1) +
coord_proj(us_laea_proj) +
scale_fill_viridis(name="2014 Populaton Estimates", labels=comma) +
theme(legend.position="right")
yapabilirsiniz
Bu haritalar "choropleths" olarak adlandırılmıştır. Bir "choropleth 50 state" araması için Google araması bana 50 eyalette haritalar oluşturabilen "choroplethr" paketini buldu. – shadowtalker