Bagaimana cara membuat skala intensitas warna yang baik?

12

Saya tidak bagus dalam statistik, tetapi saya pikir saya telah datang ke tempat yang tepat. Pertanyaan saya sederhana:

Masalah saya terdiri dari membandingkan populasi beberapa negara bagian di negara kecil, tetapi beberapa negara bagian memiliki populasi 3000.000 dan beberapa populasi 2.000.
Saya melukisnya di peta, dan "intensitas" warna tergantung pada bagaimana populasi setiap negara dibandingkan dengan populasi seluruh negara.

Masalahnya adalah bahwa negara bagian dengan banyak populasi ditunjukkan dengan warna yang sangat intens dan negara bagian yang kecil hampir tidak memiliki warna.

Apakah ada cara mudah untuk "menormalkan" atau membuat data dapat dibandingkan?

Saya tidak tahu apakah saya menjelaskan diri saya dengan benar tetapi saya berharap seseorang dapat membantu saya. Berikan komentar jika pertanyaan saya tidak jelas dan saya akan mengklarifikasi.

Terima kasih untuk bantuannya!

Zebs
sumber
4
Saya sarankan Anda memeriksa tag visualisasi di situs pertukaran gis stack untuk contoh gis.stackexchange.com/questions/tagged/visualisation
Andy W
1
Sepanjang baris yang sama, Anda mungkin ingin memeriksa gradien di www.0to255.com.
Pete Wilson
Beberapa paket peta untuk R memiliki kode warna bawaan yang mencegah masalah seperti ini, tetapi apakah itu yang Anda tanyakan?
Fr.
Saya menggunakan ini pada peta khusus, dan pendekatan yang jelas (untuk membagi setiap nilai dengan total populasi) memberi saya nilai antara 0 dan 1 (Saya kemudian menggunakan nilai ini untuk memilih "intensitas" warna). Masalahnya adalah bahwa ada nilai yang terlalu jauh, sehingga beberapa negara terlihat sepenuhnya berwarna dan beberapa hampir tidak memiliki warna sama sekali. Saya tahu secara statistik ini benar tetapi saya ingin membuat representasi data lebih relevan dan lebih mudah dipahami.
Zebs
Mengapa menggunakan seragam? Mengapa bukan skala log? Atau mungkin dalam aplikasi Anda, Anda dapat memilih breakpoints yang memiliki beberapa makna (misalnya pedesaan / pinggiran kota / perkotaan).
JMS

Jawaban:

6

Maaf, tetapi bagi saya sepertinya Anda mencoba memperbaiki apa yang tidak rusak. Bahkan, Anda mungkin bahkan mencoba untuk memecahkan apa yang tidak rusak. Ketika Anda memiliki variabel kuantitatif (di sini, populasi) yang mencakup rentang yang luas, maka metrik apa pun yang Anda gunakan untuk mewakili itu juga harus menjangkau rentang yang luas.

Tetapi untuk semua hal yang berkaitan dengan warna (dan terutama peta), sumber kuncinya adalah, saya pikir ColorBrewer

Peter Flom - Pasang kembali Monica
sumber
2
Saya mencoba memecahkan sesuatu; Saya tahu katup yang saya peroleh secara statistik benar, tetapi saya ingin membuatnya lebih mudah bagi pengguna untuk memahami data. Ini keputusan UI.
Zebs
@ Zebs: Tekuk, lebih seperti ..
naught101
5

Pertanyaan bagus, Salah satu solusinya adalah mengubah skala warna agar terdistribusi secara lebih seragam, atau distribusi dengan ekor lebih rendah ... tetapi legenda Anda harus cukup jelas karena mendeformasi skalanya, entah bagaimana, tidak adil ...

Misalnya, dalam R, mengubah ukuran normal menjadi seragam. (apa yang Anda miliki mungkin lebih ke arah lain karena Anda memiliki ekor besar dan Anda ingin mereka lebih kecil, tetapi prinsipnya sama)

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

Anda dapat membaginya dengan total populasi. Ini akan memastikan bahwa semuanya berada di antara 0 dan 1. Jika skala masih terlalu berlainan, pertimbangkan skala log.

Gary
sumber
2

Saya merasa canggung menanyakannya, tetapi apakah Anda benar-benar berkomitmen untuk menggunakan warna untuk menggambarkan jumlah kuantitatif? Apakah tidak ada cara untuk meletakkan bilah di setiap negara bagian, yang tingginya mewakili kuantitas?

Cara lain mungkin untuk menunjukkan peta dengan area yang mewakili area geografis, bersama dengan peta di mana area masing-masing negara bagian sebanding dengan ukuran populasi - mirip dengan bagaimana homunculus sensorik . Tapi itu akan menjadi jumlah gambar yang menyakitkan - saya tidak tahu cara apa pun untuk mengotomatisasi itu (meskipun mungkin ada)

410 hilang
sumber
Komentar yang bagus!
robin girard
4
Banyak platform perangkat lunak pemetaan memiliki kemampuan yang disebutkan dalam posting ini. Distorsi berdasarkan atribut ketika datang ke peta sering disebut sebagai cartograms. Lihat gis.stackexchange.com/q/7406/751 . Karena itu, bilah yang ditempatkan secara kebetulan di peta tidak lebih mudah divisualisasikan daripada warna. Ketika palang tidak berdampingan, mereka sulit untuk membuat perbandingan relatif, yang bukan masalah besar dengan skala warna.
Andy W
Saya setuju bahwa bilah kurang optimal di peta. Cara lain untuk melakukannya adalah memiliki distorsi yang dikisi , seperti di sini: viewsoftheworld.net/?p=832 . Secara pribadi, saya sering menemukan ini cukup sulit untuk diuraikan, tetapi mereka dapat dilakukan dengan cukup baik, tergantung pada jumlah distorsi.
naught101
1

Tujuan Anda yang dinyatakan:

Bandingkan populasi beberapa negara bagian di negara kecil.

Masalah yang Anda nyatakan:

Karena beberapa negara memiliki populasi 3000.000 dan beberapa populasi 2.000. Apakah ada cara mudah untuk "menormalkan" atau membuat data dapat dibandingkan?

Tujuan menormalkan data Anda sebelum pemetaan

Jawaban ini akan kurang karena saya tidak yakin konteks mengapa Anda membuat peta.

Namun demikian, berikut adalah beberapa pemikiran untuk dijelajahi: Normalisasi data Anda sehingga peta memberikan makna yang menarik bagi pembaca potensial peta, sehingga mereka dapat menghubungkan apa yang mereka lihat di peta Anda dengan beberapa konsep yang biasanya mereka pikirkan. Pada dasarnya, saya pikir angka-angka normalisasi baru Anda harus dikaitkan dengan beberapa konsep kualitatif yang menurut pembaca menarik untuk dipahami (tidbit acak: Ukur = Kuantitas x Kualitas, Hegel).

Dua cara yang diusulkan untuk menormalkan data Anda

1. Untuk memberi gambaran tentang seberapa banyak ruang terbuka di setiap negara bagian.

Buat variabel status baru untuk kepadatan populasi dengan menghitung populasi dibagi dengan total area negara.

2. Untuk membuat pewarnaan dari negara-negara kontras satu sama lain.

Buat variabel status baru dengan menghitung penyimpangan dari rata-rata setiap status. Misalnya, Anda memiliki 3 negara bagian dengan populasi sebagai berikut:

  • Negara A adalah 100.
  • Negara B adalah 50.
  • Negara C adalah 1.

Rata-rata sekitar 50.

Nilai variabel baru untuk setiap negara bagian adalah sebagai berikut:

  • Status A adalah +50 (warna hijau pekat ).
  • Status B adalah 0 (warna abu-abu ).
  • Status C adalah -49 (warna merah pekat ).

Anda dapat menggunakan skema warna apa pun di mana angka positif kontras dengan angka negatif (google 'colorbrewer' untuk banyak contoh skema warna untuk peta).

b_dev
sumber