2012-04-19 12 views
5

Estoy trabajando en la creación de cholorpleth (un proyecto de aprendizaje que comencé en HERE). Una vez le pregunté sobre el trazado de texto en un mapa (HERE) el SO. Ahora estoy tratando de trazar nombres en el mismo mapa, pero con ella facetas, pero obtengo un error:Trazar nombres de condados en el mapa de estado facetado (ggplot2)

Error in eval(expr, envir, enclos) : object 'group' not found 

que tomo para mí que R me odia y yo soy un imbécil :) traceback es ~ 5 millas de largo por lo que tampoco es una ayuda. Si saca el geom_text todo funciona bien.

PD Sé el nuevo geom_map y he estado jugando con eso también, pero este es un problema aparte que me está molestando.

Gracias de antemano por su ayuda.

#Load three data sets from my dropbox 
load(url("http://dl.dropbox.com/u/61803503/Names/cholo.RData")) 

#view head of the three data frames 
lapply(list("map.data2"=map.data2, "ny"=ny, "centroids"=centroids), head) 
#################################################################### 
# map.data2 contains the filling information (test scores)   # 
# ny contains the lat and long information for plotting boundaries # 
# centroids contains the information for plotting labels   # 
#################################################################### 

#Load Necessary Libraries 
library(ggplot2); library(maps); library(RColorBrewer); library(scales) 

ggplot(map.data2, aes(long, lat, group=group)) + #plot pass rates math 
    geom_polygon(aes(fill=level), colour=alpha('white', 1/2), size=0.2) + 
    geom_polygon(data=ny, colour='black', fill=NA) + 
    scale_fill_brewer(palette='RdYlBu', guide = guide_legend(title = 
     "Percent Passing"))+ 
    facet_grid(.~Subject)+ 
    #annotate(data = "text", label = centroids$subregion, x = centroids$long, 
    # y = centroids$lat, size = 2, colour = "black") + 
    geom_text(data=centroids, aes(x=long, y=lat, 
     label=subregions, angle=angle), size=3) + 
    opts(title = " 
     New York State Counties Passing Rate \non Elementary ELA Assessments") + 
    opts(axis.text.x = theme_blank(), axis.text.y = theme_blank(), 
     axis.ticks = theme_blank())+ 
    opts(legend.background = theme_rect()) + 
    scale_x_continuous('') + scale_y_continuous('') + 
    labs(title = "legend title") + theme_bw()+ 
    opts(axis.line=theme_blank(),axis.text.x=theme_blank(), 
     axis.text.y=theme_blank(),axis.ticks=theme_blank(), 
     axis.title.x=theme_blank(), legend.position="bottom", 
     axis.title.y=theme_blank(), 
     panel.background=theme_blank(),panel.grid.major=theme_blank(), 
     panel.grid.minor=theme_blank(),plot.background=theme_blank()) 
+0

Sé que esto no es exactamente mínima, pero sé que es importante en capas ggplot2 y quería asegurarse de que algo que estaba hacer más tarde no estaba afectando al 'geom_text' –

Respuesta

7

En la primera ggplot() llamada, mapa de grupo a group. Este mapeo se pasa luego a cada capa, por lo tanto ggplot se queja cuando no puede encontrar group en los datos centroids utilizados en su capa geom_text.

Unmap usando groups=NULL en la llamada geom_text, y que está bien:

ggplot(map.data2, aes(long, lat, group=group)) + 
    geom_polygon(aes(fill=level), colour=alpha('white', 1/2), size=0.2) + 
    geom_polygon(data=ny, colour='black', fill=NA) + 
    scale_fill_brewer(palette='RdYlBu', guide = guide_legend(title = 
     "Percent Passing"))+ 
    facet_grid(.~Subject)+ 
    geom_text(data=centroids, aes(x=long, y=lat, 
    label=subregion, angle=angle, group=NULL), size=3) + # THIS HAS CHANGED! 
    opts(title = " 
    New York State Counties Passing Rate \non Elementary ELA Assessments") + 
    opts(axis.text.x = theme_blank(), axis.text.y = theme_blank(), 
     axis.ticks = theme_blank())+ 
    opts(legend.background = theme_rect()) + 
    scale_x_continuous('') + scale_y_continuous('') + 
    labs(title = "legend title") + theme_bw()+ 
    opts(axis.line=theme_blank(),axis.text.x=theme_blank(), 
     axis.text.y=theme_blank(),axis.ticks=theme_blank(), 
     axis.title.x=theme_blank(), legend.position="bottom", 
     axis.title.y=theme_blank(), 
     panel.background=theme_blank(),panel.grid.major=theme_blank(), 
     panel.grid.minor=theme_blank(),plot.background=theme_blank()) 
+0

Muy bien gracias :) +1 –

+0

¡Muy útil, de verdad, gracias! Gracias por esa explicación w.r.t. 'group' esa fue la razón por la que no funcionó para mí cuando lo intenté por mi cuenta. –

Cuestiones relacionadas