मेरे पास निम्नलिखित कोड हैं:
import matplotlib.pyplot as plt
cdict = {
'red' : ( (0.0, 0.25, .25), (0.02, .59, .59), (1., 1., 1.)),
'green': ( (0.0, 0.0, 0.0), (0.02, .45, .45), (1., .97, .97)),
'blue' : ( (0.0, 1.0, 1.0), (0.02, .75, .75), (1., 0.45, 0.45))
}
cm = m.colors.LinearSegmentedColormap('my_colormap', cdict, 1024)
plt.clf()
plt.pcolor(X, Y, v, cmap=cm)
plt.loglog()
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.colorbar()
plt.show()
तो यह निर्दिष्ट कॉलॉर्मैप का उपयोग करके कुल्हाड़ियों एक्स बनाम वाई पर मूल्यों के एक ग्राफ का उत्पादन करता है। एक्स और वाई कुल्हाड़ी एकदम सही हैं, लेकिन कॉलोर्मा मिनट और अधिकतम v के बीच फैलता है। मैं कॉलॉर्मप को 0 और 1 के बीच सीमा के लिए बाध्य करना चाहूंगा।
मैंने उपयोग करने के बारे में सोचा:
plt.axis(...)
कुल्हाड़ियों की सीमा निर्धारित करने के लिए, लेकिन यह केवल एक्स और वाई के मिनट और अधिकतम के लिए तर्क लेता है, कॉलोर्मैप नहीं।
संपादित करें:
स्पष्टता के लिए, मान लें कि मेरा एक ग्राफ है जिसका मान श्रेणी (0 ... 0.3) है, और दूसरा ग्राफ़ जिसका मान (0.2 ... 0.8) है।
दोनों रेखांकन में, मैं चाहता हूँ कि colorbar की सीमा (0 ... 1) होगी। दोनों रेखांकन में, मैं चाहता हूं कि ऊपर दिए गए cdict की पूरी श्रृंखला का उपयोग करके रंग की यह श्रेणी समान हो (इसलिए दोनों ग्राफ़ में 0.25 समान रंग होगा)। पहले ग्राफ में, 0.3 और 1.0 के बीच के सभी रंग ग्राफ में नहीं दिखेंगे, लेकिन किनारे पर कोलोरबार की में होंगे। दूसरे में, 0 से 0.2 के बीच और 0.8 और 1 के बीच के सभी रंग ग्राफ में नहीं दिखेंगे, लेकिन किनारे पर कोलोरबार में होंगे।