2013-04-04 7 views
39

में डिफ़ॉल्ट डिफ़ॉल्ट साजिश रंग matplotlib में उपयोग किए गए डिफ़ॉल्ट रंग (उदाहरण यहां: http://matplotlib.org/examples/pylab_examples/pie_demo.html) सादे और बदसूरत हैं। मैंने यह भी देखा है कि यदि आप एक ही साजिश में 5-6 से अधिक विभिन्न श्रृंखलाओं को प्लॉट करते हैं, तो मैटलप्लिब रंग दोहराना शुरू कर देता है।matplotlib

मैंने कुछ विज़ुअलाइज़ेशन पैकेज (अन्य भाषाओं में, डिफ़ॉल्ट रूप से) से बाहर आने वाले कुछ भव्य ग्राफ देखे हैं जिनमें अलग-अलग रंगों में केवल एक रंग से 5-6 अलग-अलग श्रृंखलाएं शामिल हो सकती हैं। क्या किसी के पास matplotlib में उपयोग करने के लिए एक अच्छा रंग सेट है? और matplotlib इसे डिफ़ॉल्ट रूप से उपयोग करने का एक तरीका है?

+0

.. उस छवि में रंग मेरे लिए बहुत अच्छे लगते हैं। डिफ़ॉल्ट रंग चक्र को बदलने के तरीके के लिए आप [यह सवाल] देख सकते हैं (http://stackoverflow.com/questions/9397944/default-color-cycle-with-matplotlib), लेकिन मुझे यकीन नहीं है कि "क्या किसी के पास है एक अच्छा रंग सेट "ऐसी चीज है जिसे हम जवाब दे सकते हैं। – DSM

+0

वेब पर 1000 साइटें हैं जो आपको एक अच्छी रंग योजना चुनने में मदद करेंगी, लेकिन वे ग्राफ के लिए विशिष्ट नहीं होंगे। –

उत्तर

52

आप Matplotlib's style sheets का उपयोग कर सकते हैं। इसे mpltools library से पोर्ट किया गया है जिसमें style मॉड्यूल है जो matplotlib आरसी पैरामीटर को फिर से परिभाषित करता है।

उदाहरण के तौर पर, ggplot style और Matplotlib's manual का उपयोग देखें।

image

+0

यह वास्तव में एक सुंदर साफ पैकेज है। इसे जोड़ने के लिए धन्यवाद। – mgilson

+6

ऐसा लगता है कि यह पैकेज अब matplotlib में शामिल है: http://matplotlib.org/users/style_sheets.html – asmaier

4

आप .matplotlibrc फ़ाइल सेट कर सकते हैं। वास्तव में बहुत अधिक टिप्पणी की गई उदाहरण here है। ऐसा लगता है कि आप जिस विकल्प को बदलना चाहते हैं वह axes.color_cycle है। मुझे एक सुंदर इंटरफ़ेस के लिए इसे बनाने के बारे में कोई सलाह नहीं है - यह थोड़ा बहुत ही व्यक्तिपरक स्टैक ओवरफ़्लो है ;-) (और मैं डिफ़ॉल्ट से खुश हूं)

1

आप colormap matplotlib की कार्यक्षमता का उपयोग कर सकते हैं ।

एक अच्छा उदाहरण this प्रश्न में है। आप अपने कोलोरैप विकल्प using this script दिखा सकते हैं।

25

prettyplotlib पर एक नज़र एक पुस्तकालय है - बस दोस्तों के द्वारा हाल ही में मेरे लिए कहा - कि संशोधित करता matplotlib बेहतर पर Edward Tufte के विचारों, साथ ही Cynthia Brewer से कुछ बहुत ही सावधानी से अध्ययन कार्य के साथ गठबंधन होने के लिए रंग धारणा।

+1

ध्यान दें कि जिथब पेज के अनुसार, prettyplotlib अब बनाए रखा नहीं गया है, और रखरखाव समुद्र तट (https : //seaborn.pydata.org/index.html) पैकेज जिसमें prettyplotlib रंग योजना के लिए भी समर्थन है। – NOhs

13

Seaborn पैकेज (Matplotlib पर आधारित) में अच्छी डिफ़ॉल्ट ग्राफ शैलियों हैं, और मुझे पता चला है कि यह एक आकर्षक रंग-चक्र बनाने का एक अच्छा तरीका है।

वे यहाँ colorpalettes का एक अच्छा चर्चा है: https://stanford.edu/~mwaskom/software/seaborn/tutorial/color_palettes.html

निम्नलिखित कोड दर्शाता है कि कैसे आप एक सरल रेखा साजिश के लिए अपने आप एक नई color_cycle चुन सकते हैं:

import matplotlib.pyplot as plt 
import numpy as np 
import seaborn as sns 

num_lines = 6 

ax = plt.subplot(111) 
ax.set_color_cycle(sns.color_palette("coolwarm_r",num_lines)) 

for i in range(num_lines): 
    x = np.linspace(0,20,200) 
    ax.plot(x,np.sin(x)+i) 

plt.show() 

enter image description here

यदि आप केवल रेखा रंगों को बदलना चाहते हैं और अन्य पृष्ठभूमि के पूर्व-सेट जैसे भूरे रंग की पृष्ठभूमि का उपयोग नहीं करना चाहते हैं, तो

के साथ केवल समुद्री डाकू आयात करें
import seaborn.apionly as sns 
21

प्रश्न 2 साल पहले पूछा गया था, और आज आपकी साजिश के लिए बेहतर शैली प्राप्त करना बहुत आसान है। इसके लिए आपको बाहरी पैकेज की भी आवश्यकता नहीं है। जैसा कि @asmaier ने अपनी टिप्पणी में उल्लेख किया है, mpltools.style कार्यक्षमता को Matplotlib 1 में एकीकृत किया गया है।4, ताकि आप के साथ शैलियों स्विच कर सकते हैं:

plt.style.use(style_name) 

उदाहरण के लिए:

import matplotlib.pyplot as plt 
import numpy as np 

plt.style.use('ggplot') 

num_lines = 6 

ax = plt.subplot(111) 

for i in range(num_lines): 
    x = np.linspace(0,20,200) 
    ax.plot(x,np.sin(x)+i) 

plt.show() 

enter image description here

आप के साथ सभी उपलब्ध शैलियों सूचीबद्ध कर सकते हैं:

print plt.style.available 

matplotlib 1.5 कई में Seaborn परियोजना से कई शैलियों समेत नई शैलियों को जोड़ा गया है:

plt.style.use('seaborn-dark-palette') 

enter image description here

1

कि matplotlib के साथ प्रयोग किया जा सकता है, palettable की जाँच, अद्भुत Wes Anderson palletes विशेषता रंग की एक अधिक समृद्ध सेट के लिए।

$ pip install palettable 
$ python 
>>> from palettable.colorbrewer.qualitative import Dark2_7