मैं एक 3 डी सतह, एक रंग बार के साथकलरबार में NaN को अनदेखा कैसे करें?
surf = ax.plot_surface(xv, yv, zv, ...)
cb = fig.colorbar(surf)
जब यह काम करता है के द्वारा उत्पन्न किया जा रहा है, यह इस तरह दिखता है:
समस्या यह है कि मूल्यों के कुछ NaN, जिस स्थिति में colorbar उत्पन्न करने के लिए विफल रहता है, इस तरह हो सकता है:
C:\Users\Sam\Anaconda\lib\site-packages\matplotlib\colorbar.py:581: RuntimeWarning: invalid value encountered in greater
inrange = (ticks > -0.001) & (ticks < 1.001)
C:\Users\Sam\Anaconda\lib\site-packages\matplotlib\colorbar.py:581: RuntimeWarning: invalid value encountered in less
inrange = (ticks > -0.001) & (ticks < 1.001)
C:\Users\Sam\Anaconda\lib\site-packages\matplotlib\colors.py:576: RuntimeWarning: invalid value encountered in less
cbook._putmask(xa, xa < 0.0, -1)
मैं 0 (zv[isnan(zv)] = 0
) के साथ zv के NaN मानों को प्रतिस्थापित करने का प्रयास कर सकता हूं, लेकिन उसके बाद परिणामी ग्राफ में लंबवत चट्टान हैं, जो कुछ सुविधाओं को भ्रमित और अस्पष्ट कर रहे हैं, और यह कलर बार को स्कूज करता है।
क्या मैं चाहता हूँ NaN मूल्यों की अनदेखी करने के रंग बार के लिए एक तरीका है। ऐसा करने के लिए मैं मैन्युअल रूप से कलर बार (amin(zv[~isnan(zv)])
और amax(zv[~isnan(zv)])
) सेट करने के बाद मैन्युअल रूप से सेट कर सकता हूं, लेकिन मुझे नहीं पता कि यह कैसे करें।
कलरबार की गणना करते समय और 3 डी सतह रंगते समय NaNs को अनदेखा करने के तरीके पर कोई सुझाव?
कि ZV समतल होगा। zv एक 2 डी सरणी होना चाहिए। – charmoniumQ