में प्लॉट्स की एक श्रृंखला के लिए मानक रंग पट्टी कैसे बना सकता हूं, मैं पाइथन में कुछ डेटा प्लॉट करने के लिए matplotlib का उपयोग कर रहा हूं और भूखंडों को मानक रंग बार की आवश्यकता होती है। डेटा में एनएक्सएम मैट्रिस की एक श्रृंखला होती है जिसमें आवृत्ति जानकारी होती है ताकि एक साधारण इमशो() साजिश आवृत्ति का वर्णन करने वाले रंग के साथ 2 डी हिस्टोग्राम प्रदान करे। प्रत्येक मैट्रिक्स में डेटा अलग-अलग होता है, लेकिन ओवरलैपिंग श्रेणियां होती हैं। Imshow प्रत्येक मैट्रिक्स में डेटा 0-1 के लिए सामान्यीकृत करता है जिसका अर्थ है कि, उदाहरण के लिए, मैट्रिक्स ए की साजिश मैट्रिक्स 2 * ए की साजिश के समान दिखाई देगी (हालांकि रंग बार मूल्यों को दोगुना दिखाएगा)। मुझे लाल रंग के लिए क्या चाहिए, उदाहरण के लिए, सभी भूखंडों में एक ही आवृत्ति के अनुरूप। दूसरे शब्दों में, सभी भूखंडों के लिए एक रंगीन बार पर्याप्त होगा। किसी भी सुझाव के लिए बहुत आभार होगा।मैं पाइथन
उत्तर
सबसे आसान समाधान प्रत्येक प्लॉट के लिए समान तर्क के साथ क्लाइम (low_limit, upper_limit) को कॉल करना है।
या बस 'vmin' और 'vmax' kwargs को' imshow'। –
नहीं @ ianilis के जवाब चोरी करने के लिए है, लेकिन मैं एक उदाहरण जोड़ना चाहते थे ...
कई तरीके हैं, लेकिन सबसे सरल सिर्फ imshow
को vmin
और vmax
kwargs निर्दिष्ट करने के लिए है। वैकल्पिक रूप से, आप matplotlib.cm.Colormap
उदाहरण बना सकते हैं और इसे निर्दिष्ट कर सकते हैं, लेकिन यह सरल मामलों के लिए आवश्यक से अधिक जटिल है।
यहाँ सभी छवियों के लिए एक एकल colorbar साथ एक त्वरित उदाहरण है:
import numpy as np
import matplotlib.pyplot as plt
# Generate some data that where each slice has a different range
# (The overall range is from 0 to 2)
data = np.random.random((4,10,10))
data *= np.array([0.5, 1.0, 1.5, 2.0])[:,None,None]
# Plot each slice as an independent subplot
fig, axes = plt.subplots(nrows=2, ncols=2)
for dat, ax in zip(data, axes.flat):
# The vmin and vmax arguments specify the color limits
im = ax.imshow(dat, vmin=0, vmax=2)
# Make an axis for the colorbar on the right side
cax = fig.add_axes([0.9, 0.1, 0.03, 0.8])
fig.colorbar(im, cax=cax)
plt.show()
सवाल का यह एकमात्र जवाब आधा, या बल्कि एक नया एक शुरू होता है। अगर आप बदलना
data *= np.array([0.5, 1.0, 1.5, 2.0])[:,None,None]
को
data *= np.array([2.0, 1.0, 1.5, 0.5])[:,None,None]
अपने colorbar 0 से 0.5 के लिए जाना जाएगा जो इस मामले में गहरे नीले रंग के लिए थोड़ा हल्का नीला है और पूरी श्रृंखला कवर नहीं किया जाएगा (0 से 2) । कलरबार केवल vmin
और vmax
पर ध्यान दिए बिना अंतिम छवि या समोच्च से रंग दिखाएगा।
- 1. मैं पाइथन
- 2. मैं पाइथन
- 3. मैं पाइथन
- 4. मैं पाइथन
- 5. मैं पाइथन
- 6. मैं पाइथन
- 7. मैं पाइथन
- 8. मैं पाइथन
- 9. मैं पाइथन
- 10. मैं पाइथन
- 11. मैं पाइथन Argparse उपयोग
- 12. मैं जीमेल में पाइथन
- 13. आईपीथन: मैं पाइथन लिपि
- 14. मैं पाइथन 2
- 15. मैं पाइथन tkinter
- 16. जब मैं पाइथन प्रबंधन.py syncdb
- 17. मैं पाइथन प्रोग्राम निष्पादन योग्य
- 18. अगर मैं पहले से ही पाइथन 3 जानता हूं तो मैं पाइथन 2 कैसे सीखूं?
- 19. मैं पाइथन ऑब्जेक्ट के अंदर कैसे दिखूं?
- 20. मैं पाइथन/Django मॉड्यूल कैसे स्थापित करूं?
- 21. मैं पाइथन lib boto कैसे अपडेट करूं?
- 22. मैं पाइथन के साथ वैली कैसे ढूंढूं?
- 23. मैं पाइथन mysql क्वेरी से% कैसे बचूं
- 24. मैं पाइथन में एन्कोड कैसे करूं?
- 25. जब मैं पाइथन थ्रेड को डेमॉन
- 26. मैं पाइथन आयात को ओवरराइड कैसे करूं?
- 27. मैं पाइथन पैकेज कैसे अपडेट करूं?
- 28. पाइथन
- 29. पाइथन
- 30. पाइथन
मैं matshow() या pcolor() का उपयोग करना पसंद करता हूं क्योंकि imshow() व्याख्या को कठिन बनाते समय मैट्रिक्स को चिकना करता है। तो जब तक मैट्रिक्स वास्तव में एक छवि नहीं है, तो मेरा सुझाव है कि आप दूसरे दो को आजमाएं। – ianalis
@inalis - यदि आप इंटरपोलेशन नहीं चाहते हैं तो आप 'imshow' का उपयोग करते समय 'इंटरपोलेशन =' निकटतम 'निर्दिष्ट कर सकते हैं। बड़े रंगों के लिए 'इंको' की तुलना में 'रंगीन' बहुत धीमी है, इसलिए बड़े-आइश सरणी के लिए 'इम्शो' का उपयोग करना अक्सर बेहतर होता है। दूसरी ओर, 'रंग' वेक्टर आउटपुट देता है, जो कभी-कभी बहुत आसान हो सकता है। –
[मैप्लोट्लिब 2 सबप्लॉट्स, 1 कलरबार] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/13784201/matplotlib-2-subplots-1-colorbar) –