我试图通过将重复的部分转换为函数来转换传递给我的旧代码。以下是到目前为止我尝试过的事情:
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 .:据我所知,此错误应该可以由我提供的内容复制。但是,如果缺少某些内容,请通知我,以便我编辑帖子。