Mengapa menggunakan colormap viridis over jet?

28

Seperti yang diumumkan di https://www.youtube.com/watch?v=xAoljeRJ3lU , Matplotlib mengubah colormap default dari jet ke viridis.

Namun, saya tidak mengerti dengan cukup baik. Mungkin karena saya buta warna?

Jet colormap asli terlihat sangat kuat, saya bisa merasakan kontrasnya:

masukkan deskripsi gambar di sini

Sementara colormap viridis baru tidak memiliki kontras itu:

masukkan deskripsi gambar di sini

Adakah yang bisa menjelaskannya dengan lebih sederhana untuk saya? Saya perlu plot untuk makalah saya. Dan saya perlu alasan yang bagus untuk meyakinkan penyelia saya (dan saya sendiri) bahwa viridis adalah yang lebih baik.

cqcn1991
sumber
2
Perhatikan bahwa Matlab baru-baru ini beralih dari jet ke parula (seperti yang dibahas dalam video terkait).
Amuba kata Reinstate Monica
Beri +1 ke komentar @amoeba. Karena R2014b MATLAB menggunakan parula color-map. Salah satu alasan utama adalah bahwa jet agak tidak informatif untuk pengguna pria buta warna dan beralih ke parula termotivasi oleh ini. Buta warna laki-laki umumnya sekitar 7-8% pada beberapa populasi Eropa utara.
usεr11852 mengatakan Reinstate Monic
1
Gunakan magma, plasma atau inferno maka ... Anda tidak dipaksa untuk menggunakan default, dan IMHO tiga lainnya "lebih kuat". Viridis dipilih sebagai default karena "default harus berwarna hijau". Jika Anda mau maka di MATLAB Anda bisa mendapatkannya di sini . Penafian: pengajuan FEX adalah milik saya.
Ander Biguri
3
Kami juga membuat alat yang membantu Anda menganalisis berbagai keseragaman persepsi warna, linieritas pemetaan skala abu-abu, dan kesesuaian untuk pemirsa buta warna. Lihat bids.github.io/colormap dan github.com/matplotlib/viscm Kami memiliki cabang dalam pengembangan untuk merancang colormaps dua arah.
Stefan van der Walt

Jawaban:

34

Lihat video ini . Anda juga bisa google karena ada banyak bashing jet (di mana-mana) di mana-mana.

Jet sangat menyenangkan karena mencolok, penuh warna, dan tidak mengharuskan Anda untuk memikirkan skala warna Anda: bahkan jika Anda hanya memiliki beberapa outlier, Anda masih mendapatkan "semua fitur" di plot Anda. Anda sendiri yang mengatakannya: jet hampir tidak pernah kekurangan kontras.

Namun ini datang dengan harga yang sangat tinggi: jet secara harfiah menunjukkan hal-hal yang tidak ada . Ini menciptakan kontras entah dari mana: hanya mengubah skala warna Anda sedikit di jet dan Anda akan melihat bahwa gambar berubah secara dramatis. Lakukan hal yang sama di viridis, dan Anda hanya akan memiliki kesan bahwa Anda menempatkan lebih atau kurang pada hal yang sama persis.

Jika Anda tidak suka viridis, gunakan colormaps lain yang dibahas dalam video di atas: mereka memiliki sifat bagus yang sama, dan mereka tidak akan membuat data Anda bohong. Juga ubah skala warna: mulai dari 0, meskipun logis dari sudut pandang ilmiah, mungkin bukan ide yang baik untuk merepresentasikan data spesifik ini (tetapi ubah bilah warna Anda untuk mencerminkannya, mis. "<25").

Tapi sekali lagi, lihat videonya, ada banyak contoh di sana serta penjelasan lengkapnya.

JohnW
sumber
1
Mengerti, Anda sebenarnya menautkan kembali video yang saya posting. Saya menontonnya lagi. Dan ketika mulai, itu memberi contoh Mona Lisa. Tiba-tiba saya mendapatkannya. jetcahaya tinggi kontras yang tidak ada, misalnya dahi Mona Lisa.
cqcn1991
6
Ya, persis: biasanya jet over-yellow dan cyan. Tergantung pada skala warna Anda, Anda akan "melihat" berbagai hal. Dalam colormaps seperti-veridis, jika Anda tidak melihat sesuatu yang Anda lihat di jet maka itu berarti bahwa hal yang Anda cari diabaikan dibandingkan dengan yang lain: ini adalah seluruh tujuan dari colormap, untuk memberikan otak kita perkiraan signifikansi relatif setiap piksel. :) (dan ya, Anda mengutip video, tetapi itu benar-benar berisi contoh-contoh yang baik dan saya bertanya-tanya apakah Anda sudah melihatnya atau hanya mengutipnya untuk menyajikan veridis)
JohnW
Dan ada beberapa contoh makalah yang mengejar penjelasan tentang efek aneh yang hanya berupa artefak jet. Saya akan mencoba menggali beberapa.
Davidmh
Saya juga harus menambahkan bahwa kinerja virdis bervariasi sesuai dengan layar berbeda. Saya memiliki laptop lama dan desktop hackintosh baru. Desktop hackintosh's terlihat jauh lebih baik dan lebih jelas daripada laptop.
cqcn1991
2
Jadi, ada contoh ini . Sayangnya, referensi asli ada di blog abandonmatlab, yang sekarang bersifat pribadi. Semua blog yang saya temukan bisa kutip dari blog, tapi bukan kertasnya. Jika ada yang menemukannya, saya akan sangat senang.
Davidmh
12

Anda memerlukan plot karena Anda perlu menampilkan data dan Anda memerlukan colormap karena Anda tahu bahwa warna yang Anda perlihatkan tidak akan terlihat sama oleh semua orang: setiap warna adalah interpretasi melalui persepsi visual kami.

Memang, warna subjektif dalam arti bahwa mereka ditafsirkan oleh otak (dalam arti bahwa spektrum diubah menjadi aktivitas saraf) menjadi berbagai tingkat valensi (atau nilai) sebagai fungsi dari colorbar yang diberikan di sebelahnya. Mata Anda akan membuat satu set saccade konstan untuk mencocokkan plot dengan bar.

JET akan dilarang karena ini jelas ambigu. Salah satu fitur pertama warna dalam persepsi visual adalah nilainya, yaitu kecerahan total, yang bertindak sebagai fitur paling langsung. Namun, nilai ini non-monotonik di JET, sehingga nilai SATU dalam kecerahan dapat menyebabkan nilai persepsi yang berbeda. Ini khususnya benar untuk nada blueiash - kekuningan (dan sebagian besar waktu yang sesuai dengan nilai nol) yang secara artifisial "muncul" dari sebuah gambar. Periksa kurva seperti itu di: kecerahan colormaps yang berbeda

Viridis (di antara alternatif lain) dibuat untuk menghindari masalah itu. Anda dapat membaca deskripsi lengkap ini untuk pilihan ini , dan bagaimana menyesuaikan colormap Anda dengan kategori data yang akan di plot.

Ini harus meyakinkan atasan Anda.

meduz
sumber
7

Masalah dengan menggunakan segala jenis skala warna untuk secara visual mewakili data ordinal adalah bahwa monotonitas luminance : yaitu, jika Anda memiliki data yang memenuhi semacam hubungan pemesanan, hubungan itu harus tercermin bukan hanya oleh perubahan rona, tetapi oleh luminance. Masalah dengan pemetaan warna "jet" adalah bahwa titik tertinggi dalam pemetaan (sesuai dengan nilai yang lebih besar) diberi warna merah, kisaran menengah diberi warna kuning-hijau, dan terendah adalah biru - tetapi jika kita melihat "kecerahan" yang dirasakan (yaitu, luminance) dari warna-warna itu, jelas bahwa pemetaan ini bukan monoton. Pemetaan warna lain dalam pertanyaan Anda memperbaiki cacat ini.

Alasan untuk properti ini harus jelas, tidak sedikit di antaranya adalah kenyataan bahwa jika angka tersebut direproduksi dalam skala abu-abu, penafsiran tidak hilang.

heropup
sumber
7

Sudah ada beberapa jawaban yang bagus di sini, tapi saya pikir masih relevan untuk menambahkan sudut pandang lain, dari karya bagus

Good Color Maps: Cara Mendesainnya. Peter Kovesi. arXiv: 1509.03700 (2015). Perangkat lunak tersedia di sini .

yang menjabarkan dengan sangat jelas prinsip-prinsip desain warna-peta, dan menyediakan alat yang sangat bagus untuk menganalisisnya untuk keseragaman persepsi:

masukkan deskripsi gambar di sini

Plot 'papan cuci' ini memiliki ramp yang stabil dari nol ke kiri ke kanan di sepanjang bagian bawah, dan bagian atas plot memiliki modulasi sinusoidal dari amplitudo seragam. Untuk peta warna yang dirancang dengan benar, semua pinggiran di bagian atas harus menunjukkan kontras yang identik, atau paling tidak serupa. Namun, ketika Anda jetmengikuti tes, segera jelas bahwa ini tidak terjadi:

masukkan deskripsi gambar di sini

Dengan kata lain, ada satu ton pinggiran, di bagian merah dan terutama bagian hijau jet, yang sepenuhnya nuked dan menjadi sama sekali tidak terlihat, karena peta warna sama sekali tidak memiliki kontras di sana. Saat Anda menerapkan ini pada data Anda, kontras di wilayah tersebut akan sama dengan pinggiran. Demikian pula, kontras tajam di sepanjang bagian bawah, pada apa yang seharusnya menjadi skala linier halus, mewakili tempat-tempat di mana peta memperkenalkan fitur-fitur yang tidak benar-benar ada dalam data.

Emilio Pisanty
sumber