mam 3d powierzchnia, wraz z kolorowym pasku, generowane przezJak zignorować NaN na pasku kolorów?
surf = ax.plot_surface(xv, yv, zv, ...)
cb = fig.colorbar(surf)
Kiedy to działa, wygląda to tak:
Problemem jest to, że niektóre wartości może być NaN, w którym to przypadku colorbar nie generują, tak:
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)
Mogę spróbować zastąpić wartości NaN z z 0 (zv[isnan(zv)] = 0
), ale wynikowy wykres ma pionowe klify, które są mylące i zaciemniają niektóre funkcje, a także pochylają pasek kolorów.
Co chcę jest sposobem na pasku kolorów do ignorowania wartości Nan. Aby to zrobić, mogłem ręcznie ustawić pasek koloru (na amin(zv[~isnan(zv)])
i amax(zv[~isnan(zv)])
) po jego utworzeniu, ale nie wiem jak to zrobić.
Jakieś sugestie dotyczące ignorowania NaN podczas obliczania paska koloru i kolorowania powierzchni 3d?
To będzie spłaszczyć Zv. Zv musi być tablicą 2D. – charmoniumQ