Як зробити гарну шкалу інтенсивності кольорів?


12

Я аж ніяк не хороший у статистиці, але думаю, що прийшов у потрібне місце. Моє запитання просте:

Моя проблема полягає в порівнянні чисельності населення декількох штатів у невеликій країні, але деякі штати мають населення 3000 000, а деякі населення 2 000.
Я малюю це на карті, і "інтенсивність" кольору залежить від того, наскільки населення кожної держави порівнюється з населенням всієї країни.

Проблема полягає в тому, що штати з великою кількістю населення демонструються дійсно інтенсивними кольорами, а маленькі штати ледь не мають жодного кольору.

Чи є простий спосіб "нормалізувати" або зробити дані порівняльними?

Я не знаю, чи правильно пояснюю себе, але сподіваюся, що хтось може мені допомогти. Будь ласка, прокоментуйте, якщо моє питання не зрозуміло, і я уточню.

Дякую за твою допомогу!


4
Я б запропонував вам ознайомитись із тегом візуалізації на сайті обміну стеками
Andy W

1
У цьому ж рядку ви можете перевірити градієнти на веб-сайті www.0to255.com.
Піт Вілсон

Деякі з пакетів карт для R мають вбудовані кольорові коди, які запобігають подібному випуску, але це те, про що ви питали?
о.

Я використовую це на спеціальній карті, і очевидний підхід (щоб розділити кожне значення на загальну сукупність) дає мені значення між 0 і 1 (потім я використовую це значення, щоб вибрати "інтенсивність" кольору). Проблема полягає в тому, що є занадто далеко значення, тому деякі стани виглядають повністю кольоровими, а деякі майже не мають кольору. Я знаю статистично кажучи, що це правильно, але я хочу зробити представлення даних більш релевантним та легшим для розуміння.
Зебс

Навіщо використовувати рівномірні перерви? Чому б не журнальна шкала? Або, можливо, у вашій програмі ви можете обрати точки прориву, які мають певне значення (наприклад, сільські / заміські / міські).
JMS

Відповіді:


6

Вибачте, але мені це здається, що ви намагаєтеся виправити те, що не порушено. Насправді, ви навіть можете намагатися зламати те, що не порушено. Якщо у вас є кількісна змінна (тут, сукупність), яка охоплює широкий діапазон, то будь-який показник, який ви використовуєте для її представлення, також повинен охоплювати широкий діапазон.

Але для всіх речей, пов'язаних з кольором (і особливо картами), ключовим джерелом є, я думаю, ColorBrewer


2
Я намагаюся щось зламати; Я знаю, що отримані вами дані є статистично правильними, але я хочу зробити користувачам простіше зрозуміти дані. Це рішення інтерфейсу користувача.
Зебс

@Zebs: Згини, більше схоже на ..
naught101

5

Добре питання, одне рішення - змінити масштаб кольорів, щоб вони були більш рівномірно розподілені, або до розподілу з нижчими хвостами ... але тоді ваша легенда повинна бути достатньо чіткою, тому що деформувати масштаб, як-то, несправедливо ...

Наприклад, в R, переведення розміру норми до рівномірної. (те, що у вас, можливо, іде більше інше, оскільки у вас є великі хвости, і ви хочете, щоб вони були меншими, але принцип той самий)

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)

3

Ви могли поділитись на загальну кількість населення. Це гарантувало б, що все лежить між 0 і 1. Якщо шкали все ще занадто розрізнені, врахуйте шкалу журналу.


2

Мені незручно це запитувати, але чи справді ви прагнете використовувати колір, щоб зобразити кількісну суму? Чи немає способу поставити планку в кожному штаті, висота якої відображає кількість?

Іншим способом може бути показ карти з областями, що представляють географічні райони, разом з картою, де площа кожної держави пропорційна чисельності населення - подібно до того, як робить сенсорний гомункулус . Але це було б болісною кількістю малюнків - я не знаю жодного способу автоматизації цього (хоча він може існувати)


Гарне зауваження!
Робін Жирард

4
Багато програмних плат для картографування мають можливості, згадані в цій публікації. Перекоси на основі атрибутів, коли мова йде про карти, часто називають картограмами. Див. Gis.stackexchange.com/q/7406/751 . За словами, бари, розміщені на карті, не легше візуалізувати, ніж кольори. Якщо смуги не є поруч, їх важко порівняти, що не так вже й складно з кольоровою гамою.
Andy W

Я згоден, що на карті бари менш оптимальні. Інший спосіб зробити це - перекручені сітки, як тут: viewsoftheworld.net/?p=832 . Особисто мені часто буває важко розшифрувати, але це можна зробити досить добре, залежно від кількості спотворень.
naught101

1

Ваша заявлена ​​мета:

Порівняйте кількість населення декількох штатів у маленькій країні.

Ваша заявлена ​​проблема:

Оскільки деякі штати мають населення 3000 000, а деякі населення 2 000. Чи є простий спосіб "нормалізувати" або зробити дані порівняльними?

Мета нормалізації даних перед картографуванням

Цієї відповіді бракує, оскільки я не впевнений у контексті того, чому ви робите карту.

Тим не менш, ось кілька роздумів: Нормалізуйте свої дані, щоб карта надала цікавий сенс потенційним читачам карти, щоб вони могли пов’язати побачене на вашій карті з тією концепцією, про яку вони зазвичай думають. В основному, я думаю, що ваші нові нормовані числа повинні бути пов’язані з якоюсь якісною концепцією, яку читачам карт буде цікаво зрозуміти (випадковий приплив: міра = кількість х якості, Гегель).

Два запропоновані способи нормалізації даних

1. Для того, щоб дати відчуття, скільки відкритого простору в кожному штаті.

Створіть нову змінну стану для густоти населення шляхом обчислення кількості населення, поділеної на загальну площу штату.

2. Для того, щоб забарвлення станів контрастувало між собою.

Створіть нову змінну стану, обчисливши відхилення від середнього значення кожного стану. Наприклад, скажімо, що у вас є 3 штати з населенням:

  • Стан А - 100.
  • Стан В - 50.
  • Стан С - 1.

Середній показник становитиме близько 50.

Значення нової змінної для кожного стану будуть такими:

  • Стан А становить +50 (колір інтенсивно зелений ).
  • Стан B дорівнює 0 (колір сірий ).
  • Стан C дорівнює -49 (колір інтенсивно червоний ).

Ви можете використовувати будь-яку кольорову схему, де позитивні цифри контрастують з негативними числами (google 'colorbrewer' для безлічі прикладів кольорових схем для карт).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.