Wie erstelle ich eine gute Farbintensitätsskala?

12

Ich bin in der Statistik keineswegs gut, aber ich glaube, ich bin an der richtigen Stelle. Meine Frage ist einfach:

Mein Problem besteht darin, die Bevölkerung mehrerer Staaten in einem kleinen Land zu vergleichen, aber einige Staaten haben eine Bevölkerung von 3000.000 und einige eine Bevölkerung von 2.000.
Ich male es auf eine Karte, und die "Intensität" der Farbe hängt davon ab, wie die Bevölkerung jedes Staates mit der Bevölkerung des ganzen Landes verglichen wird.

Das Problem ist, dass die Staaten mit viel Bevölkerung mit sehr intensiven Farben dargestellt werden und die kleinen Staaten kaum Farbe haben.

Gibt es eine einfache Möglichkeit, die Daten zu "normalisieren" oder vergleichbar zu machen?

Ich weiß nicht, ob ich mich richtig erkläre, aber ich hoffe, jemand kann mir helfen. Bitte kommentieren Sie, wenn meine Frage nicht klar ist und ich klären werde.

Danke für deine Hilfe!

Zebs
quelle
4
Ich würde vorschlagen, dass Sie sich das Visualisierungs-Tag auf der GIS-
Andy W
1
In diesem Sinne möchten Sie möglicherweise die Farbverläufe auf www.0to255.com überprüfen.
Pete Wilson
Einige der Kartenpakete für R verfügen über integrierte Farbcodes, die diese Art von Problemen verhindern. Aber haben Sie danach gefragt?
Fr.
Ich verwende dies auf einer benutzerdefinierten Karte, und der offensichtliche Ansatz (um jeden Wert durch die Gesamtbevölkerung zu teilen) gibt mir einen Wert zwischen 0 und 1 (ich verwende diesen Wert dann, um die "Intensität" der Farbe zu wählen). Das Problem ist, dass es Werte gibt, die zu weit auseinander liegen, sodass einige Zustände vollständig farbig aussehen und andere fast überhaupt keine Farbe haben. Ich weiß statistisch gesehen, dass dies korrekt ist, aber ich möchte die Datendarstellung relevanter und verständlicher machen.
Zebs
Warum einheitliche Pausen verwenden? Warum nicht eine Protokollskala? Oder vielleicht können Sie in Ihrer Anwendung Haltepunkte auswählen, die eine Bedeutung haben (z. B. ländlich / vorstädtisch / städtisch).
JMS

Antworten:

6

Es tut mir leid, aber für mich klingt es so, als würden Sie versuchen, das zu reparieren, was nicht kaputt ist. In der Tat könnten Sie sogar versuchen, das zu brechen, was nicht kaputt ist. Wenn Sie eine quantitative Variable (hier Population) haben, die einen weiten Bereich abdeckt, sollte jede Metrik, die Sie zur Darstellung verwenden, auch einen weiten Bereich umfassen.

Aber für alle Dinge, die mit Farbe (und insbesondere Karten) zu tun haben , ist die Hauptquelle meiner Meinung nach ColorBrewer

Peter Flom - Monica wieder einsetzen
quelle
2
Ich versuche etwas zu zerbrechen; Ich weiß, dass die Werte, die ich erhalte, statistisch korrekt sind, aber ich möchte den Benutzern das Verständnis der Daten erleichtern. Es ist eine UI-Entscheidung.
Zebs
@ Zebs: Bend, eher wie ..
naught101
5

Gute Frage, eine Lösung besteht darin, die Farben neu zu skalieren, um sie gleichmäßiger zu verteilen, oder auf eine Verteilung mit niedrigeren Schwänzen ... aber dann muss Ihre Legende klar genug sein, weil es irgendwie unfair ist, die Skala zu verformen ...

Zum Beispiel in R das Skalieren einer Normalen in eine Uniform. (Was du hast, geht vielleicht eher in die andere Richtung, da du große Schwänze hast und sie kleiner haben willst, aber das Prinzip ist dasselbe)

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
quelle
3

Sie könnten durch die Gesamtbevölkerung teilen. Dies würde sicherstellen, dass alles zwischen 0 und 1 liegt. Wenn die Skalen immer noch zu unterschiedlich sind, ziehen Sie eine Protokollskala in Betracht.

Gary
quelle
2

Es ist mir unangenehm, das zu fragen, aber sind Sie wirklich entschlossen, Farbe zur Darstellung einer quantitativen Menge zu verwenden? Gibt es keine Möglichkeit, in jedem Zustand einen Balken zu platzieren, dessen Höhe die Menge darstellt?

Eine andere Möglichkeit könnte darin bestehen, die Karte mit Gebieten anzuzeigen, die die geografischen Gebiete darstellen, zusammen mit einer Karte, auf der das Gebiet jedes Staates proportional zur Bevölkerungsgröße ist - ähnlich wie es der sensorische Homunkulus tut. Aber das wäre eine schmerzhafte Menge an Zeichnen - ich kenne keine Möglichkeit, das zu automatisieren (obwohl es existieren könnte)

EnergyNumbers
quelle
Gute Bemerkung!
Robin Girard
4
Viele Mapping-Softwareplattformen verfügen über die in diesem Beitrag genannten Funktionen. Die Verzerrungen aufgrund von Attributen bei Karten werden häufig als Kartogramme bezeichnet. Siehe gis.stackexchange.com/q/7406/751 . Allerdings sind Balken, die zufällig in einer Karte platziert sind, nicht einfacher zu visualisieren als Farben. Wenn die Balken nicht nebeneinander liegen, ist es schwierig, relative Vergleiche anzustellen, was bei einer Farbskala kein so großes Problem darstellt.
Andy W
Ich bin damit einverstanden, dass Balken auf einer Karte nicht optimal sind. Eine andere Möglichkeit besteht darin, Verzerrungen zu verursachen, wie hier: viewsoftheworld.net/?p=832 . Persönlich finde ich diese oft ziemlich schwer zu entziffern, aber sie können je nach Ausmaß der Verzerrung recht gut gemacht werden.
naught101
1

Ihr erklärtes Ziel:

Vergleichen Sie die Bevölkerung mehrerer Staaten in einem kleinen Land.

Ihr angegebenes Problem:

Da einige Staaten eine Bevölkerung von 3000.000 und einige eine Bevölkerung von 2.000 haben. Gibt es eine einfache Möglichkeit, die Daten zu "normalisieren" oder vergleichbar zu machen?

Ziel ist es, Ihre Daten vor dem Mapping zu normalisieren

Diese Antwort wird fehlen, da ich nicht sicher bin, warum Sie die Karte erstellen.

Dennoch sind hier einige Gedanken zu beachten: Normalisieren Sie Ihre Daten so, dass die Karte den potenziellen Lesern der Karte eine interessante Bedeutung bietet, damit sie das, was sie auf Ihrer Karte sehen, mit einem Konzept verknüpfen können, über das sie normalerweise nachdenken. Grundsätzlich denke ich, dass Ihre neuen normalisierten Zahlen mit einem qualitativen Konzept verknüpft sein sollten, das für die Kartenleser interessant zu verstehen ist (zufälliger Leckerbissen: Maß = Quantität x Qualität, Hegel).

Zwei vorgeschlagene Möglichkeiten zur Normalisierung Ihrer Daten

1. Um ein Gefühl dafür zu geben, wie viel Freiraum sich in jedem Zustand befindet.

Erstellen Sie eine neue Zustandsvariable für die Bevölkerungsdichte, indem Sie die Bevölkerung geteilt durch die gesamte Staatsfläche berechnen.

2. Um die Färbung der Zustände kontrastieren zu lassen.

Erstellen Sie eine neue Zustandsvariable, indem Sie die Abweichung vom Mittelwert jedes Zustands berechnen. Angenommen, Sie haben drei Bundesstaaten mit folgenden Bevölkerungsgruppen:

  • Zustand A ist 100.
  • Zustand B ist 50.
  • Zustand C ist 1.

Der Mittelwert liegt bei etwa 50.

Die Werte der neuen Variablen für jeden Status lauten wie folgt:

  • Zustand A ist +50 (farbintensives Grün ).
  • Zustand B ist 0 (Farbe grau ).
  • Zustand C ist -49 (Farbe intensiv rot ).

Sie können jedes Farbschema verwenden, bei dem positive Zahlen im Gegensatz zu negativen Zahlen stehen (Google 'Colorbrewer' für viele Beispiele für Farbschemata für Karten).

b_dev
quelle