¿Cómo hacer una buena escala de intensidad de color?

12

De ninguna manera soy bueno en estadística, pero creo que he venido al lugar correcto. Mi pregunta es simple:

Mi problema consiste en comparar la población de varios estados en un país pequeño, pero algunos estados tienen una población de 3000,000 y algunos una población de 2,000.
Lo estoy pintando en un mapa, y la "intensidad" del color depende de cómo se compara la población de cada estado con la población de todo el país.

El problema es que los estados con mucha población se muestran con colores realmente intensos y los estados pequeños apenas tienen color.

¿Hay una manera fácil de "normalizar" o hacer que los datos sean comparables?

No sé si me estoy explicando adecuadamente, pero espero que alguien pueda ayudarme. Comente si mi pregunta no es clara y aclararé.

¡Gracias por tu ayuda!

Zebs
fuente
44
Te sugiero que revises la etiqueta de visualización en el sitio de intercambio de pila gis para ver ejemplos gis.stackexchange.com/questions/tagged/visualisation
Andy W
1
En la misma línea, es posible que desee consultar los gradientes en www.0to255.com.
Pete Wilson
Algunos de los paquetes de mapas para R tienen códigos de color integrados que evitan este tipo de problema, pero ¿es eso lo que estaba preguntando?
p.
Estoy usando esto en un mapa personalizado, y el enfoque obvio (dividir cada valor por la población total) me da un valor entre 0 y 1 (luego uso este valor para elegir la "intensidad" del color). El problema es que hay valores que están demasiado separados, por lo que algunos estados se ven completamente coloreados y otros casi no tienen color. Sé estadísticamente que esto es correcto, pero quiero que la representación de datos sea más relevante y más fácil de entender.
Zebs
¿Por qué usar pausas uniformes? ¿Por qué no una escala logarítmica? O quizás en su aplicación podría elegir puntos de interrupción que tengan algún significado (por ejemplo, rural / suburbano / urbano).
JMS

Respuestas:

6

Lo siento, pero para mí parece que estás tratando de arreglar lo que no está roto. De hecho, incluso podrías estar tratando de romper lo que no está roto. Cuando tiene una variable cuantitativa (aquí, población) que abarca un amplio rango, entonces cualquier métrica que use para representarla también debe abarcar un amplio rango.

Pero para todas las cosas relacionadas con el color (y especialmente los mapas), la fuente clave es, creo, ColorBrewer

Peter Flom - Restablece a Monica
fuente
2
Estoy tratando de romper algo; Sé que los valores que obtengo son estadísticamente correctos, pero quiero que sea más fácil para los usuarios comprender los datos. Es una decisión de UI.
Zebs
@Zebs: Bend, más como ...
naught101
5

Buena pregunta, una solución es reescalar los colores para que estén distribuidos de manera más uniforme, o para una distribución con colas más bajas ... pero entonces su leyenda tiene que ser lo suficientemente clara porque deformar la escala, de alguna manera, es injusto ...

Por ejemplo, en R, reescalando un normal a un uniforme. (lo que tienes quizás sea más al revés ya que tienes colas grandes y quieres que sean más pequeñas, pero el principio es el mismo)

X=array(rnorm(10000),c(100,100))
ramp=colorRamp(c("blue","cyan","white","yellow","red"),space ="rgb")
kleur <- rgb( ramp(seq(0,1,length=200)),max = 255)
par(mfrow=c(1,2))
image(X,col=kleur)### image without rescaling
Fn=ecdf(X)
ScaledX=array(Fn(X),c(100,100))
image(ScaledX,col=kleur)
robin girard
fuente
3

Podrías dividir por la población total. Esto aseguraría que todo se encuentre entre 0 y 1. Si las escalas siguen siendo muy dispares, considere una escala logarítmica.

Gary
fuente
2

Me siento incómodo preguntándolo, pero ¿estás realmente comprometido a usar el color para representar una cantidad cuantitativa? ¿No hay forma de poner una barra en cada estado, cuya altura representa la cantidad?

Otra forma podría ser mostrar el mapa con áreas que representen las áreas geográficas, junto con un mapa donde el área de cada estado sea proporcional al tamaño de la población, de forma similar a como lo hace el homúnculo sensorial . Pero eso sería una cantidad dolorosa de dibujo: no conozco ninguna forma de automatizar eso (aunque puede existir)

410 desaparecidos
fuente
Buen comentario!
robin girard
44
Muchas plataformas de software de mapeo tienen las capacidades mencionadas en esta publicación. Las distorsiones basadas en atributos cuando se trata de mapas se denominan frecuentemente cartogramas. Consulte gis.stackexchange.com/q/7406/751 . Dicho esto, las barras colocadas por casualidad en un mapa no son más fáciles de visualizar que los colores. Cuando las barras no están una al lado de la otra, es difícil hacer comparaciones relativas, lo que no es un problema tan grande con una escala de colores.
Andy W
Estoy de acuerdo en que las barras son menos que óptimas en un mapa. Otra forma de hacerlo es tener distorsiones cuadriculadas , como aquí: viewsoftheworld.net/?p=832 . Personalmente, a menudo encuentro estos bastante difíciles de descifrar, pero se pueden hacer bastante bien, dependiendo de la cantidad de distorsión.
naught101
1

Su objetivo declarado:

Compare la población de varios estados en un país pequeño.

Su problema declarado:

Dado que algunos estados tienen una población de 3000,000 y algunos una población de 2,000. ¿Hay una manera fácil de "normalizar" o hacer que los datos sean comparables?

Objetivo de normalizar sus datos antes de mapear

Esta respuesta será deficiente ya que no estoy seguro del contexto de por qué está haciendo el mapa.

Sin embargo, aquí hay algunas ideas para explorar: Normalice sus datos para que el mapa proporcione un significado interesante a los lectores potenciales del mapa, para que puedan vincular lo que ven en su mapa con algún concepto en el que normalmente piensan. Básicamente, creo que sus nuevos números normalizados deberían estar vinculados a algún concepto cualitativo que los lectores de mapas encuentren interesante de entender (tidbit aleatorio: Medida = Cantidad x Calidad, Hegel).

Dos formas propuestas para normalizar sus datos

1. Para dar una idea de cuánto espacio abierto hay en cada estado.

Cree una nueva variable de estado para la densidad de población calculando la población dividida por el área total del estado.

2. Para que el color de los estados contraste entre sí.

Cree una nueva variable de estado calculando la desviación de la media de cada estado. Por ejemplo, supongamos que tiene 3 estados con poblaciones de la siguiente manera:

  • El estado A es 100.
  • El estado B es 50.
  • El estado C es 1.

La media será de unos 50.

Los valores de la nueva variable para cada estado serán los siguientes:

  • El estado A es +50 (color verde intenso ).
  • El estado B es 0 (color gris ).
  • El estado C es -49 (color rojo intenso ).

Puede usar cualquier combinación de colores donde los números positivos contrasten con los negativos (google 'colorbrewer' para muchos ejemplos de combinaciones de colores para mapas).

b_dev
fuente