क्या कोई अध्ययन किया गया है कि एक ही भूखंड पर कई श्रृंखला दिखाने के लिए रंगों का सबसे अच्छा सेट क्या है? मैं सिर्फ चूक का उपयोग कर रहा हूं matplotlib
, और वे थोड़े बचकाने लग रहे हैं क्योंकि वे सभी उज्ज्वल, प्राथमिक रंग हैं।
क्या कोई अध्ययन किया गया है कि एक ही भूखंड पर कई श्रृंखला दिखाने के लिए रंगों का सबसे अच्छा सेट क्या है? मैं सिर्फ चूक का उपयोग कर रहा हूं matplotlib
, और वे थोड़े बचकाने लग रहे हैं क्योंकि वे सभी उज्ज्वल, प्राथमिक रंग हैं।
जवाबों:
एक रंग पैलेट को चुनने के लिए एक सामान्य संदर्भ है, ColorBrewer पर सिंथिया ब्रेवर का काम । रंगों को कोरोप्लेथ मैप्स में अवधारणात्मक पैटर्न के आधार पर चुना गया था, लेकिन डेटा पैटर्न को अलग करने के लिए किसी भी प्रकार के प्लॉट में रंग का उपयोग करने के लिए ज्यादातर यही सलाह लागू होती है। यदि रंग पूरी तरह से विभिन्न लाइनों के बीच अंतर करने के लिए है, तो एक गुणात्मक पैलेट क्रम में है।
अक्सर रंग केवल कुछ लाइनों के साथ लाइन भूखंडों में आवश्यक नहीं होते हैं, और विभिन्न बिंदु प्रतीकों और / या डैश पैटर्न पर्याप्त प्रभावी होते हैं। लाइन भूखंडों के साथ एक अधिक सामान्य समस्या यह है कि यदि लाइनें अक्सर ओवरलैप होती हैं, तो अलग-अलग पैटर्न को भेद करना मुश्किल होगा, चाहे वह प्रतीकों या रंग का उपयोग न करें। स्टीफन कोसलिन एक प्लॉट में केवल 4 लाइनों के लिए अंगूठे के एक सामान्य नियम की सिफारिश करते हैं। यदि आप लाइनों को छोटे कई भूखंडों की श्रृंखला में विभाजित करने पर अधिक विचार करते हैं। यहाँ एक उदाहरण है जो सिफारिश दिखा रहा है
किसी भी रंग की आवश्यकता नहीं है और लेबल पर्याप्त से अधिक हैं।
अन्य उत्तरों में बहुत अच्छी तरह से अच्छी सलाह, लेकिन यहाँ छात्रों के लिए मेरी निम्न-स्तरीय सलाह से कुछ अतिरिक्त बिंदु हैं। यह सब सिर्फ सलाह है, स्वाभाविक रूप से, महत्वपूर्ण प्रश्नों के बारे में सोचा जाना: मेरा ग्राफ क्या करना है? इन आंकड़ों से क्या मतलब है? पाठकगण कौन हैं? मैं ग्राफ़ के भीतर क्या करने की उम्मीद कर रहा हूं? क्या किसी और के हठधर्मियों की परवाह किए बिना ग्राफ अच्छी तरह से काम करता है?
इसके अलावा, रंग का महत्व एक ग्राफ से दूसरे में बहुत भिन्न होता है। एक चोरोप्लेथ या पैच मैप के लिए, जिसमें यह विचार वास्तव में है कि विभिन्न क्षेत्र रंगीन हैं या कम से कम अलग-अलग छायांकित हैं, एक ग्राफ की सफलता इसकी रंग योजना की सफलता से जुड़ी हुई है। अन्य प्रकार के ग्राफ़ के लिए, रंग डिस्पेंसेबल या यहां तक कि एक उपद्रव हो सकता है।
क्या आपके रंगों की ज़रूरत है? उदाहरण के लिए, यदि अलग-अलग चर या समूह स्पष्ट रूप से एक ग्राफ के विभिन्न क्षेत्रों में पाठ लेबल द्वारा प्रतिष्ठित किए जाते हैं, तो अलग-अलग रंग भी अक्सर टोकिल होंगे। फलों का सलाद या टेक्नीकलर ड्रीमकोट प्रभाव से सावधान रहें। स्लाइस पर या उसके द्वारा पाठ लेबलिंग के साथ पाई चार्ट के लिए, रंग कोई अतिरिक्त जानकारी नहीं देता है, उदाहरण के लिए। (यदि आपका पाई चार्ट एक कुंजी या किंवदंती पर निर्भर करता है, तो आप गलत तरह के ग्राफ की कोशिश कर सकते हैं।)
कभी भी लाल और हरे रंग के बीच विपरीतता पर भरोसा न करें, क्योंकि बहुत से लोग इन रंगों को अलग करने के लिए संघर्ष करते हैं।
इंद्रधनुष के अनुक्रम (ROYGBIV या लाल-नारंगी-पीले-हरे-नीले-इंडिगो-वायलेट) भौतिक आधार पर अपील कर सकते हैं, लेकिन वे व्यवहार में अच्छी तरह से काम नहीं करते हैं। उदाहरण के लिए, पीला आमतौर पर एक कमजोर रंग होता है, जबकि नारंगी और हरा आमतौर पर मजबूत होते हैं, इसलिए छाप एक नीरस अनुक्रम की भी नहीं होती है।
किसी भी रंग योजना से बचें जिसमें मजबूत रंग के बड़े पैच का परिणाम है।
एक क्रमबद्ध क्रम की आवश्यकता होने पर गहरे लाल से गहरे नीले रंग तक का क्रम अच्छी तरह से काम करता है। यदि सफेद (हमेशा की तरह) पृष्ठभूमि रंग है, तो इसका उपयोग न करें, लेकिन हल्के लाल से हल्के नीले रंग तक छोड़ दें। [1 मार्च 2018 को जोड़ा गया] शायद यह रेखांकित करने के लिए भी स्पष्ट है: लाल में कई लोगों के लिए नकारात्मक और / या खतरे के संकेत हैं, जो सहायक हो सकते हैं, और नीले रंग का मतलब सकारात्मक हो सकता है। स्पष्ट करने के लिए बहुत स्पष्ट है, लेकिन मैं इसे किसी भी तरह से करता हूं: लाल और नीले रंग कई देशों में राजनीतिक अर्थ हैं।
नीला और नारंगी एक साथ अच्छी तरह से चलते हैं (यहां हस्ती, टिब्शीरानी और फ्रीडमैन के लिए आभारी हैं: http://web.stanford.edu/~hastie/local.ftp/Springer/OLD/ESESII_print4.pdf ] [1 मार्च 2018] कई विज़ुअलाइज़ेशन पर परिचयात्मक पुस्तकें अब नारंगी, नीले और ग्रे को एक मूल पैलेट के रूप में सुझाती हैं: नारंगी और / या नीले रंग के लिए जो आप देखभाल करते हैं और पृष्ठभूमि के लिए ग्रे।
ग्रे ग्रे से डार्क ग्रे तक ग्रेस्केल अच्छी तरह से काम कर सकता है और यह एक अच्छा विचार है जब कलर रिप्रोडक्शन सवाल से बाहर हो। (यह एक घटिया प्रिंटर है जो ग्रेस्केल पर एक निष्पक्ष बैश नहीं कर सकता है।) (ग्रे यदि आप अनुपालन करते हैं, तो वरीयताएँ महासागरों में बदल जाती हैं, ऐसा लगता है; जैसे रंग और रंग के साथ।)
[५ अगस्त २०१६ को जोड़ा गया] एक सामान्य सिद्धांत यह है कि अक्सर दो रंग बहुत से बेहतर काम करते हैं। यदि दो समूह रुचि रखते हैं, तो समान रूप से मजबूत रंग चुनें (जैसे लाल या नारंगी और नीला)। यदि एक समूह कई में विशेष रुचि रखता है, तो उसे नीला या नारंगी बनाएं और दूसरों को ग्रे होने दें। सिद्धांत रूप में सात समूहों के लिए सात रंगों का उपयोग जानकारी को वहन करता है, लेकिन एक समय में एक रंग पर ध्यान केंद्रित करना कठिन होता है जब कई अन्य लोगों से प्रतिस्पर्धा होती है। एक मल्टीकोल प्लॉट की तुलना में कई समूहों के लिए छोटे गुणक बेहतर हो सकते हैं।
हाल के वर्षों में इस पर वास्तव में शोध का एक अच्छा सौदा रहा है।
एक बड़ा बिंदु "अर्थ प्रतिध्वनि" है। यह मूल रूप से "रंगों का मतलब है जो वे प्रतिनिधित्व करते हैं," जैसे कि पैसे के लिए एक समय श्रृंखला को हरे रंग का होना चाहिए, कम से कम संयुक्त राज्य अमेरिका में दर्शकों के लिए। यह स्पष्ट रूप से समझ में सुधार करता है। इस विषय पर एक बहुत ही दिलचस्प पेपर लिन, एट अल (2013) का है: http://vis.stanford.edu/papers/semantically-resonant-colors
अन्य टैब में बहुत सारी जानकारी के साथ, http://tools.medialab.sciences-po.fr/iwanthue/ पर बहुत अच्छा iWantHue रंग जनरेटर भी है ।
लिन, शेरोन, जूली फोर्टुना, चिन्मय कुलकर्णी, मौरीन स्टोन और जेफरी हीर। (2013)। डेटा विज़ुअलाइज़ेशन के लिए शब्दार्थ-अनुनाद रंग का चयन करना। कंप्यूटर ग्राफिक्स फोरम (प्रोक। यूरोविस), 2013
पॉल टोल अपनी वेबसाइट पर रंग अंतर (यानी, श्रेणीबद्ध या गुणात्मक डेटा) और रंग-दृष्टि के लिए अनुकूलित एक रंग योजना प्रदान करता है और वहां से जुड़े एक "तकनीकी" (पीडीएफ फाइल) के बारे में विस्तार से बताता है । उसका कहना है:
संभव के रूप में अपने वैज्ञानिक परिणामों के साथ ग्राफिक्स बनाने के लिए, रंगों का एक पैलेट होना आसान है जो हैं:
- रंग-अंधा पाठकों सहित सभी लोगों के लिए अलग;
- काले और सफेद से अलग;
- स्क्रीन और कागज पर अलग; तथा
- अभी भी एक साथ अच्छी तरह से मेल खाते हैं।
मैंने 9 सबसे अलग रंगों के उनके "पैलेट 1" से रंग योजना ली, और इसे अपनी matplotlibrc
फ़ाइल में नीचे रखा axes.color_cycle
:
axes.color_cycle : 332288, 88CCEE, 44AA99, 117733, 999933, DDCC77, CC6677, 882255, AA4499
फिर, जो किंगटन के उत्तर के रूप में प्लॉट किए गए डिफ़ॉल्ट लाइनों से उधार लेता है:
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
x = np.linspace(0, 20, 100)
fig, axes = plt.subplots(nrows=2)
for i in range(1,10):
axes[0].plot(x, i * (x - 10)**2)
for i in range(1,10):
axes[1].plot(x, i * np.cos(x))
plt.show()
का परिणाम:
रंग मानचित्रों को बदलने के लिए (उदाहरण के लिए, स्केलर मूल्यों का प्रतिनिधित्व करने के लिए), मैंने जो सबसे अच्छा संदर्भ देखा है, वह केनेथ मॉरलैंड द्वारा यहां उपलब्ध पेपर " डायवर्जिंग कलर मैप्स फॉर साइंटिफिक विज़ुअलाइज़ेशन " है। उन्होंने इंद्रधनुष योजना को बदलने के लिए कूल-वार्म योजना विकसित की, और "एक एल्गोरिथ्म प्रस्तुत करता है जो उपयोगकर्ताओं को आसानी से अपने स्वयं के अनुकूलित रंग मानचित्र बनाने की अनुमति देता है"।
वैज्ञानिक दृश्यों में रंग के उपयोग के बारे में जानकारी के लिए एक और उपयोगी स्रोत रॉबर्ट सिमन से आया है, वह व्यक्ति जिसने नासा के लिए "ब्लू मार्बल" छवि बनाई थी। पृथ्वी वेधशाला वेब साइट पर उनकी पोस्ट की श्रृंखला देखें ।
पर colorbrewer2.org आप पा सकते हैं गुणात्मक , अनुक्रमिक और अपसारी रंग योजनाओं। गुणात्मक क्रमिक रंगों के बीच अंतर को अधिकतम करता है, और यही मैं gnuplot में उपयोग कर रहा हूं। साइट की सुंदरता यह है कि आप रंगों के हेक्साडेसिमल कोड को आसानी से कॉपी कर सकते हैं ताकि वे आयात करने के लिए एक हवा हो। एक उदाहरण के रूप में, मैं निम्नलिखित 8-रंग सेट का उपयोग कर रहा हूं:
#e41a1c
#377eb8
#4daf4a
#984ea3
#ff7f00
#ffff33
#a65628
#f781bf
यह सुखद है और स्पष्ट परिणाम पैदा करता है।
एक साइड नोट के रूप में , अनुक्रमिक का उपयोग तब किया जाता है, जब आपको एक केंद्रीय ग्रेड (जैसे पर्वत ऊंचाई और समुद्र की गहराई) से अंतर को उजागर करने की आवश्यकता होती है, जब आपको एक सहज ढाल और विचलन की आवश्यकता होती है। आप यहां इन रंग योजनाओं के बारे में अधिक पढ़ सकते हैं ।
रंग पट्टियाँ चुनने के लिए बहुत सारी वेबसाइटें समर्पित हैं। मुझे नहीं पता है कि रंगों का एक विशेष सेट है जो वास्तव में सबसे अच्छा है, आपको अपने दर्शकों और अपने काम के लहजे के आधार पर चुनना होगा।
की जाँच करें http://www.colourlovers.com/palettes या http://design-seeds.com/index.php/search आरंभ करने के लिए। उनमें से कुछ में रंग हैं जो विभिन्न समूहों को दिखाने के लिए दो करीब हैं, लेकिन अन्य आपको एक व्यापक श्रेणी में पूरक रंग देंगे।
आप मेटप्लोटलिब में गैर-डिफ़ॉल्ट पूर्वनिर्धारित रंगों को भी देख सकते हैं ।
मैं बिखरे हुए भूखंडों के लिए colorbrewer से Dark2 पैलेट को पसंद करता हूं। हमने इसका उपयोग ggobi पुस्तक, www.ggobi.org/book में किया है । लेकिन अन्यथा रंग पट्टियाँ डेटा भूखंडों के बजाय भौगोलिक क्षेत्रों के लिए होती हैं। बिंदु-आधारित भूखंडों के लिए अच्छा रंग विकल्प अभी भी एक मुद्दा है।
आर संकुल colorspace
और dichromat
उपयोगी हैं। colorspace
पहिया के आसपास रंगों का चयन करने की अनुमति देता है: आप घंटे / दिन ठीक ट्यूनिंग खर्च कर सकते हैं। dichromat
colorblindness के लिए जाँच में मदद करता है।
ggplot2
आम तौर पर अच्छे डिफॉल्ट होते हैं, हालांकि जरूरी नहीं कि कलर-ब्लाइंड प्रूफ हो।
रेड टू ब्लू स्कीम आपके कंप्यूटर पर अच्छी दिखती है, लेकिन यह अच्छी तरह से प्रोजेक्ट नहीं करती है।
एक और संभावना यह है कि ऐसे रंगों का एक सेट खोजा जाएगा जो a) LAB में समान हैं, b) कलर ब्लाइंडनेस को ध्यान में रखते हैं, और c) sRGB कलरस्पेस के साथ ही सबसे आम CMYK रिक्त स्थान के गेमट में फिट हो सकते हैं।
मुझे लगता है कि रंगों को चुनने की किसी भी विधि के लिए अंतिम आवश्यकता एक आवश्यकता है- यह कोई अच्छा नहीं करता है यदि रंग स्क्रीन पर अच्छे दिखते हैं लेकिन सीएमवाईके प्रक्रिया में मुद्रित होने पर इसे म्यूट किया जाता है। और जब से ओपी ने "प्रकाशन गुणवत्ता" निर्दिष्ट की, मैं मान रहा हूं कि रेखांकन वास्तव में सीएमवाईके में मुद्रित होंगे।
यह मेरी पसंदीदा योजना है। इसमें 20 (!!!!) अलग रंग हैं, जो सभी आसानी से अलग-अलग हैं। यह शायद अंधे नेत्रहीन लोगों के लिए विफल रहता है।
#e6194b
#3cb44b
#ffe119
#0082c8
#f58231
#911eb4
#46f0f0
#f032e6
#d2f53c
#fabebe
#008080
#e6beff
#aa6e28
#fffac8
#800000
#aaffc3
#808000
#ffd8b1
#000080
#808080
#ffffff
#000000
लाइनों की साजिश करते समय, आपको हरे और पीले रंग के लिए बाहर देखना चाहिए, जो प्रोजेक्टर पर अच्छी तरह से प्रदर्शित नहीं होते हैं। चूंकि मैं अंततः अपने अधिकांश भूखंडों को प्रस्तुतियों में फिर से उपयोग करता हूं, इसलिए मैं इन रंगों से बचता हूं, भले ही मूल इरादा स्क्रीन या पेपर प्रकाशन के लिए हो।
उच्च विपरीत बनाए रखने के हितों में, जो मुझे काले, लाल, नीले, मैजेंटा, सियान के साथ छोड़ देता है और अगर मुझे वास्तव में इसकी आवश्यकता है तो मैं ग्रे का उपयोग करता हूं। वास्तव में, इनमें से अधिकांश चमकीले, प्राथमिक या द्वितीयक रंग हैं। मुझे पता है कि यह सौंदर्य की दृष्टि से इष्टतम नहीं हो सकता है, लेकिन मैं जो पेश कर रहा हूं उसकी स्पष्टता में अधिक दिलचस्पी है। दूसरी ओर, एक सीमित पैलेट से लगातार एक ही रंग का पुन: उपयोग करना सौंदर्य के लिए एक अच्छी बात हो सकती है।
यदि आप 6 से अधिक पंक्तियों का उपयोग कर रहे हैं, तो आप अधिक स्थान भर रहे हैं और रंग ब्लॉक करने की दिशा में आगे बढ़ रहे हैं। इस प्रकार के कथानक के लिए मुझे लगता है कि प्रत्येक मामले पर अलग से विचार करने की आवश्यकता है। क्या आप चाहते हैं कि चरम सीमाएं बाहर हों, या शून्य-क्रॉसिंग? क्या आपका डेटा चक्रीय है (उदाहरण 0 और 2 data को एक ही रंग का उपयोग करना चाहिए)? क्या तापमान के लिए नीले / लाल जैसे मानकों के अनुरूप है? क्या सफेद NaN का प्रतिनिधित्व करता है, कोई डेटा नहीं, या इसे एक हाइलाइट के रूप में उपयोग किया जाएगा? आदि आदि।
Colorblind दर्शकों के लिए, CARTOColors के पास एक गुणात्मक colorblind- अनुकूल योजना है, Safe
जो पॉल टोल की लोकप्रिय लोकप्रिय योजनाओं पर आधारित है । इस पैलेट में 12 आसानी से भेद किए जाने वाले रंग होते हैं।
एक अन्य महान गुणात्मक रंगब्लिंड फ्रेंडली पैलेट उनके लेख "कलर यूनिवर्सल डिज़ाइन (CUD): में प्रस्तावित ओकाबे और इतो स्कीम है: कैसे आंकड़े और प्रस्तुतियों को बनाया जाए जो कलरब्लाइंड लोगों के अनुकूल हैं।"
### Example for R users
library(ggplot2)
library(rcartocolor)
library(patchwork)
theme_set(theme_classic(base_size = 14) + theme(panel.background = element_rect(fill = "#ecf0f1")))
set.seed(123)
df <- data.frame(x = rep(1:5, 8),
value = sample(1:100, 40),
variable = rep(paste0("category", 1:8), each = 5))
safe_pal <- carto_pal(12, "Safe")
palette_OkabeIto_black <- c("#E69F00", "#56B4E9", "#009E73", "#F0E442",
"#0072B2", "#D55E00", "#CC79A7", "#000000")
# plot
p1 <- ggplot(data = df, aes(x = x, y = value)) +
geom_line(aes(colour = variable), size = 1) +
scale_color_manual(values = palette_OkabeIto_black)
p2 <- ggplot(data = df, aes(x = x, y = value)) +
geom_col(aes(fill = variable)) +
scale_fill_manual(values = safe_pal)
p1 / p2