python - How to ignore NaN in colorbar? -
मेरे पास 3 डी सतह है, एक रंग बार के साथ
सर्फ = Ax.plot_surface (xv, yv, zv, ...) cb = fig.colorbar (सर्फ) जब यह काम करता है, ऐसा लगता है:
समस्या यह है कि कुछ मान शायद एनएएन हो सकते हैं जिस स्थिति में रंगबार उत्पन्न करने में विफल रहता है, जैसे:
< पूर्व> सी: \ उपयोगकर्ता \ सैम \ एनाकॉन्डा \ lib \ site-packages \ matplotlib \ colorbar.py: 581: रनटाइम चेतावनी: अधिक से अधिक संख्या में अमान्य मूल्य = (टीक्स & gt; -0.001) & amp; (Ticks & lt; 1.001) सी: \ उपयोगकर्ता \ सैम \ एनाकॉन्डा \ lib \ site-packages \ matplotlib \ colorbar.py: 581: रनटाइम चेतावनी: कम अराजक = (टीक्स & gt; -0.001) में सामना करना पड़ा अमान्य मूल्य & amp; (ticks & lt; 1.001) सी: \ उपयोगकर्ता \ सैम \ एनाकॉन्डा \ lib \ site-packages \ matplotlib \ colors.py: 576: रनटाइम चेतावनी: कम cbook._putmask (xa, xa & lt; 0.0, -1) मैं 0 ( zv [isnan (zv)] = 0 के साथ zv के NaN मानों को बदलने की कोशिश कर सकता हूं, लेकिन फिर परिणामस्वरूप ग्राफ में खड़ी चट्टानें हैं , जो कुछ सुविधाओं को भ्रमित और अस्पष्ट कर रहे हैं, और यह रंग बार skews।
मुझे क्या चाहिए रंग पट्टी के लिए एक रास्ता है जो कि नाएन वैल्यू को अनदेखा करेगा ऐसा करने के लिए मैं मैन्युअल रूप से रंग बार ( amin (zv [~ isnan (zv)]) और amax (zv [~ isnan (zv))) सेट कर सकता था ) इसे बनाया जाने के बाद, लेकिन मुझे नहीं पता कि यह कैसे करना है। रंग पट्टी की गणना करते समय और 3 डी सतह को रंगे जाने पर, कैसे नाय को अनदेखा करने के बारे में कोई सुझाव? < plot_surface
vmin और vmax पैरामीटर को कॉल में सेट करें कोड>। इन मानों को न्यूनतम और अधिकतम मानों को रंग पट्टी से मैप किया जाता है। आयात के रूप में एनएमपी आयात करें matplotlib.pyplot plt आयात mpl_toolkits.mplot3d.axes3d के रूप में axes3d def चोटियों (एक्स, वाई): वापसी X * np.sin (y) fig = plt.figure () कुल्हाड़ी = fig.add_subplot (1, 1, 1, प्रक्षेपण = '3 डी') एक्स, वाई = एनपी। मेसेग्रिड (एनपी.लिन्सपैस (-3, 3, 100), np.linspace (-3, 3, 100)) जेड = शिखर (एक्स, वाई) जेड [X + Y & gt; 3] = एनपी.एनएन सर्फ = एक्स.लोट_सर्फफ़्फ़स (एक्स, वाई, जेड, अल्फा = 0.3 , सेमीप = plt.cm.jet, vmin = np.nanmin (z), vmax = np.nanmax (z)) cbar = plt.colorbar (सर्फ) plt.show ()
Comments
Post a Comment