Estoy tratando de representar visualmente la distribución de los apellidos en los Estados Unidos. En concreto, trato de mostrar que la distribución es tal que los nombres más comunes (digamos los 50 primeros) son muy comunes, pero que después desciende rápidamente. La conclusión que espero apoyar es que no es tan significativo diferenciar entre común y menos común entre los nombres que no están en el top X porque todos son una porción muy pequeña de la población.
Tengo la frecuencia observada de todos los apellidos que aparecen más de 100 veces en el censo de 2000.
## Data from the US Census, extracted and CSV re-hosted
## http://www.census.gov/genealogy/www/data/2000surnames/names.zip
names <- read.csv("http://samswift.org/files/app_c.csv")
Mi intuición fue agrupar la lista clasificada por grupos de 50. Nombres más comunes 1-50, 51-100, ...
sum50 <- tapply(names$count, (seq_along(names$count)-1) %/% 50, sum)
Así que ahora tenemos la suma de la población con un nombre de los 50 principales, un nombre de los 50 segundos, etc.
Me imaginaba una trama como esta donde el eje x es el factor ordenado de bins (1-50, 51-100 ..) y el eje y es la suma de la población en ese bin. Creo que es importante que la anchura de las barras escale también con la variable y para que el área del cuadrado transmita la masa de la población.
Así que, pregunta en dos partes realmente (aunque creo que está mal visto)
-
¿Cómo podría generar este gráfico en R con los datos proporcionados? Generalmente uso ggplot2, pero no estoy acostumbrado. Intenté usar geom_bar y tratar de establecer el ancho, pero no logré generar nada ni siquiera un poco funcional.
-
¿Tienes una idea mejor de cómo visualizar la afirmación que estoy haciendo, o estás en desacuerdo con la afirmación por completo?