Comment faire une bonne échelle d'intensité de couleur?

12

Je ne suis pas du tout bon en statistiques, mais je pense que je suis au bon endroit. Ma question est simple:

Mon problème consiste à comparer la population de plusieurs États dans un petit pays, mais certains États ont une population de 3 000 000 et certains une population de 2 000.
Je le peins sur une carte, et l '"intensité" de la couleur dépend de la façon dont la population de chaque État se compare à la population de tout le pays.

Le problème est que les États très peuplés sont représentés avec des couleurs très intenses et que les petits États n'ont presque aucune couleur.

Existe-t-il un moyen simple de "normaliser" ou de rendre les données comparables?

Je ne sais pas si je m'explique correctement mais j'espère que quelqu'un pourra m'aider. Veuillez commenter si ma question n'est pas claire et je vais clarifier.

Merci de votre aide!

Zebs
la source
4
Je vous suggère de vérifier la balise de visualisation sur le site d'échange de pile gis pour des exemples gis.stackexchange.com/questions/tagged/visualisation
Andy W
1
Dans le même esprit, vous voudrez peut-être vérifier les dégradés sur www.0to255.com.
Pete Wilson
Certains packages de cartes pour R ont des codes de couleurs intégrés qui empêchent ce genre de problème, mais est-ce ce que vous demandiez?
Fr.
Je l'utilise sur une carte personnalisée, et l'approche évidente (pour diviser chaque valeur par la population totale) me donne une valeur entre 0 et 1 (j'utilise ensuite cette valeur pour choisir l '"intensité" de la couleur). Le problème est qu'il y a des valeurs trop éloignées, donc certains états ont l'air complètement colorés et certains n'ont presque pas de couleur du tout. Je sais statistiquement que c'est correct mais je veux rendre la représentation des données plus pertinente et plus facile à comprendre.
Zebs
Pourquoi utiliser des pauses uniformes? Pourquoi pas une échelle logarithmique? Ou peut-être que dans votre application, vous pouvez choisir des points d'arrêt qui ont une certaine signification (par exemple rural / suburbain / urbain).
JMS

Réponses:

6

Je suis désolé, mais il me semble que vous essayez de réparer ce qui n'est pas cassé. En fait, vous pourriez même essayer de briser ce qui ne l'est pas. Lorsque vous avez une variable quantitative (ici, population) qui s'étend sur une large plage, la métrique que vous utilisez pour la représenter doit également couvrir une large plage.

Mais pour tout ce qui concerne la couleur (et en particulier les cartes), la source clé est, je pense, ColorBrewer

Peter Flom - Réintégrer Monica
la source
2
J'essaye de casser quelque chose; Je sais que les valeurs que je reçois sont statistiquement correctes, mais je veux faciliter la compréhension des données par les utilisateurs. C'est une décision d'interface.
Zebs
@Zebs: Bend, plus comme ..
naught101
5

Bonne question, une solution consiste à redimensionner les couleurs pour les répartir plus uniformément, ou à une distribution avec des queues plus basses ... mais alors votre légende doit être suffisamment claire car déformer l'échelle, d'une manière ou d'une autre, est injuste ...

Par exemple, dans R, le redimensionnement d'une normale en uniforme. (ce que vous avez va peut-être plus dans l'autre sens puisque vous avez de grosses queues et que vous les voulez plus petites, mais le principe est le même)

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
la source
3

Vous pourriez diviser par la population totale. Cela garantirait que tout se situe entre 0 et 1. Si les échelles sont encore trop disparates, envisagez une échelle logarithmique.

Gary
la source
2

Je me sens gêné de le demander, mais êtes-vous vraiment déterminé à utiliser la couleur pour représenter une quantité quantitative? N'y a-t-il pas moyen de mettre une barre dans chaque état, dont la hauteur représente la quantité?

Une autre façon pourrait être de montrer la carte avec des zones représentant les zones géographiques, ainsi qu'une carte où la zone de chaque État est proportionnelle à la taille de la population - similaire à la façon dont l' homoncule sensoriel le fait. Mais ce serait une quantité pénible de dessin - je ne connais aucun moyen d'automatiser cela (bien qu'il puisse exister)

410 partis
la source
Bonne remarque!
Robin Girard
4
De nombreuses plates-formes logicielles de cartographie ont les capacités mentionnées dans cet article. Les distorsions basées sur les attributs en ce qui concerne les cartes sont souvent appelées cartogrammes. Voir gis.stackexchange.com/q/7406/751 . Cela étant dit, les barres placées par hasard dans une carte ne sont pas plus faciles à visualiser que les couleurs. Lorsque les barres ne sont pas côte à côte, il est difficile de faire des comparaisons relatives, ce qui n'est pas un gros problème avec une échelle de couleurs.
Andy W
Je suis d'accord que les barres ne sont pas optimales sur une carte. Une autre façon de le faire est d'avoir des distorsions maillées , comme ici: viewsoftheworld.net/?p=832 . Personnellement, je trouve souvent ceux-ci assez difficiles à déchiffrer, mais ils peuvent être assez bien faits, selon la quantité de distorsion.
naught101
1

Votre objectif déclaré:

Comparez la population de plusieurs États d'un petit pays.

Votre problème déclaré:

Depuis, certains États ont une population de 3 000 000 et certains une population de 2 000. Existe-t-il un moyen simple de "normaliser" ou de rendre les données comparables?

Objectif de normaliser vos données avant la cartographie

Cette réponse fera défaut car je ne suis pas sûr du contexte de la raison pour laquelle vous faites la carte.

Néanmoins, voici quelques réflexions à explorer: normalisez vos données afin que la carte donne un sens intéressant aux lecteurs potentiels de la carte, afin qu'ils puissent lier ce qu'ils voient sur votre carte à un concept auquel ils pensent normalement. Fondamentalement, je pense que vos nouveaux nombres normalisés devraient être liés à un concept qualitatif que les lecteurs de cartes trouvent intéressant à comprendre (friandise aléatoire: mesure = quantité x qualité, Hegel).

Deux façons de normaliser vos données

1. Afin de donner une idée de la quantité d'espace ouvert dans chaque état.

Créez une nouvelle variable d'état pour la densité de population en calculant la population divisée par la superficie totale de l'État.

2. Afin de faire contraster la coloration des états.

Créez une nouvelle variable d'état en calculant l'écart par rapport à la moyenne de chaque état. Par exemple, supposons que vous ayez 3 États avec des populations comme suit:

  • L'état A est 100.
  • L'état B est 50.
  • L'état C est 1.

La moyenne sera d'environ 50.

Les valeurs de la nouvelle variable pour chaque état seront les suivantes:

  • L'état A est +50 (couleur vert intense ).
  • L'état B est 0 (couleur grise ).
  • L'état C est -49 (couleur rouge intense ).

Vous pouvez utiliser n'importe quel schéma de couleurs où les nombres positifs contrastent avec les nombres négatifs (google 'colorbrewer' pour de nombreux exemples de schémas de couleurs pour les cartes).

b_dev
la source