我有一个数组:
a = array([
[ nan, 2., 3., 2., 5., 3.],
[ nan, 4., 3., 2., 5., 4.],
[ nan, 2., 1., 2., 3., 2.]
])
我制作了一个填充轮廓:
plt.contourf(a)
所以,我会拥有它:
当我执行plt.axis('tight')
时没有任何反应,但我想隐藏边界NaN
值。怎么做容易?
答案 0 :(得分:1)
您可以使用nanmin和nanmax设置最小和最大xlim:
import numpy as np
a = np.array([
[ np.nan, 2., 3., 2., 5., 3.],
[ np.nan, 4., 3., 2., 5., 4.],
[ np.nan, 2., 1., 2., 3., 2.]
])
import pylab as plt
xmax= np.nanmax(a)
xmin=np.nanmin(a)
plt.xlim(xmin,xmax)
plt.contourf(a)
plt.show()
答案 1 :(得分:0)
如果数组中的NaN位于示例中的列中,则可以执行以下操作:
import matplotlib.pyplot as plt
a = array([
[ nan, 2., 3., 2., 5., 3.],
[ nan, 4., 3., 2., 5., 4.],
[ nan, 2., 1., 2., 3., 2.]
])
b = np.delete(a,0,1)
plt.contourf(b)
答案 2 :(得分:0)
嗯..
如果我在开始和结束时考虑os osNs列,我尝试了它并且它起作用了:
x = np.arange(0,a.shape[1])
plt.xlim([x[~np.isnan(a[0,:])][0],x[~np.isnan(a[0,:])][-1]])