4 votos

Añadir números al mapa de Estados Unidos Ayuda R, R-Studio?

¿Puede alguien ayudarme a crear un mapa en R ? Necesito hacer un mapa del número de tiendas que una empresa tiene en cada estado. Lo único que necesito es que se muestre el número de tiendas en cada estado.

Por ejemplo: si hay 150 tiendas en California y 250 en Texas, necesito que el mapa muestre 150 dentro de los límites de California y 250 dentro de los límites de Texas.

He creado un mapa con:

m = map("states", region = c('Alabama', etc....))

Intenté añadir los números como etiqueta pero no funcionó.

m = map("states", region = c('Alabama', etc....), labels = c('24','56',etc....))

Debo estar perdiendo algo. Tengo un archivo .csv con el nombre del estado y el número de tiendas en cada estado. ¿Hay alguna manera fácil de traducir esto en un gráfico? Me gustaría evitar hacerlo a mano en Excel.


Gracias. Ha funcionado. ¿Alguien sabe cómo tratar las etiquetas que no caben dentro de los límites de un estado? Además, ¿alguien sabe cómo colorear los estados basándose en el valor del número? La imagen del mapa y el código que estoy usando está abajo: US Map With Counts library("maps")

map.text("state", regions=c("alabama", "arizona", "arkansas", "california", "colorado", "connecticut", "delaware", "district of columbia", "florida", "georgia", "idaho", "illinois", "indiana", "iowa", "kansas", "kentucky", "louisiana", "maine", "maryland", "massachusetts:main", "michigan:north", "minnesota", "mississippi", "missouri", "montana", "nebraska", "nevada", "new hampshire", "new jersey", "new mexico", "new york:main", "north carolina:main", "north dakota", "ohio", "oklahoma", "oregon", "pennsylvania", "rhode island", "south carolina", "south dakota", "tennessee", "texas", "utah", "vermont", "virginia:main", "washington:main", "west virginia", "wisconsin", "wyoming"), labels=as.character(c(29, 38, 13, 173, 21, 12, 5, 1, 108, 59, 7, 40, 46, 3, 9, 40, 23, 8, 24, 20, 49, 9, 14, 27, 2, 4, 12, 7, 21, 12, 60, 73, 2, 108, 18, 14, 71, 1, 35, 1, 49, 117, 10, 4, 39, 27, 18, 10, 2)))

3voto

fastcall Puntos 874

Prueba lo siguiente:

library("maps")
map.text("state", regions=c("california", "texas"), labels=as.character(c(125, 250)))

R plot

0voto

Aaron Puntos 25882

Hay una excelente blog que va paso a paso en la creación de un mapa coropleto. Su ejemplo es específico para Europa, aunque no deberías tener problemas para incorporar tus propios datos. Me gusta especialmente cómo incorporan el potente motor gráfico de ggplot2 en su flujo de trabajo.

enter image description here

library(maptools)
library(ggplot2)
library(ggmap)

# read administrative boundaries (change folder appropriately)
eurMap <- readShapePoly(fn="NUTS_2010_60M_SH/Shape/data/NUTS_RG_60M_2010")

# read downloaded data (change folder appropriately)
eurEdu <- read.csv("educ_thexp_1_Data.csv", stringsAsFactors = F)
eurEdu$Value <- as.double(eurEdu$Value) #format as numeric

# merge map and data
eurEduMapDf <- merge(eurMapDf, eurEdu, by.x="id", by.y="GEO")
eurEduMapDf <- eurEduMapDf[order(eurEduMapDf$order),]

#limit data to main Europe
europe.limits <- geocode(c("Cape Fligely, Rudolf Island, Franz Josef Land, Russia", "Gavdos, Greece", "Faja Grande, Azores", "Severny Island, Novaya Zemlya, Russia"))

eurEduMapDf <- subset(eurEduMapDf, long > min(europe.limits$lon) & long < max(europe.limits$lon) & lat > min(europe.limits$lat) & lat < max(europe.limits$lat))

# ggplot mapping
# data layer
m0 <- ggplot(data=eurEduMapDf)
# empty map (only borders)
m1 <- m0 + geom_path(aes(x=long, y=lat, group=group), color='gray') + coord_equal()

# fill with education expenditure data
m2 <- m1 + geom_polygon(aes(x=long, y=lat, group=group, fill=Value))

# inverse order (to have visible borders)
m0 <- ggplot(data=eurEduMapDf)
m1 <- m0 + geom_polygon(aes(x=long, y=lat, group=group, fill=Value)) + coord_equal()
m2 <- m1 + geom_path(aes(x=long, y=lat, group=group), color='black')
m2

# over a GoogleMap (not working if not correctly projected)
map <- get_map(location = 'Europe', zoom=4)
m0 <- ggmap(map)
m1 <- m0 + geom_polygon(aes(x=long, y=lat, group=group, fill=Value), data=eurEduMapDf, alpha=.9)
m2 <- m1 + geom_path(aes(x=long, y=lat, group=group), data=eurEduMapDf, color='black')

# add text
library(doBy)
txtVal <- summaryBy(long + lat + Value ~ id, data=eurEduMapDf, FUN=mean, keep.names=T)
m3 <- m2 + geom_text(aes(x=long, y=lat, label=Value), data=txtVal, col="yellow", cex=3)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X