使用其他数组时发生ValueError

时间:2018-11-24 14:48:04

标签: python function matplotlib graph valueerror

我试图通过将重复的部分转换为函数来转换传递给我的旧代码。以下是到目前为止我尝试过的事情:

from mpl_toolkits.axes_grid1 import make_axes_locatable
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.colors as colors

def graphs(arr, sub, fig):
    image=sub.imshow(arr,origin='low',cmap=cm,norm=colors.SymLogNorm(linthresh=10),vmin=np.min(arr[np.where(arr>0)]),vmax=np.max(arr),extent=[-1,1,-1,1])
    sub.axis([-10,10,-10,10])
    divider = make_axes_locatable(sub)
    fig.colorbar(image, cax=divider.append_axes("right", size="5%", pad=0.05))

cm=plt.cm.jet
cm.set_under('white')

A1, A2, A3, A4=(np.random.rand(204,204),np.random.rand(204,204),np.random.rand(204,204),np.random.rand(204,204))

fig1, (a1,a2,a3,a4) = plt.subplots(ncols=4,figsize=(15,15))
im1=graphs(A1,a1,fig1)
im2=graphs(A2,a2,fig1)
im3=graphs(A3,a3,fig1)
im4=graphs(A4,a4,fig1)

这确实有效。但是,如果我将im1=graphs(A1,a1,fig1)更改为im1=graphs(np.load('T.npy'),a1,fig1),其中T.npy是一个file,其中包含一个大小为(204,204)的数组,那么会出现以下错误:

ValueError: cannot convert float NaN to integer

我找不到解决方案。我检查了np.isnan,但未找到任何匹配。任何帮助将不胜感激。

P.S .:据我所知,此错误应该可以由我提供的内容复制。但是,如果缺少某些内容,请通知我,以便我编辑帖子。

0 个答案:

没有答案