Я пытаюсь преобразовать устаревший код, который был передан мне, превратив повторяющуюся часть в функцию.Вот что я пробовал до сих пор:
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
- это файл , содержащий массив размером (204,204)
, то я получу следующую ошибку:
ValueError: cannot convert float NaN to integer
Я не могу найти решение.Я проверил с np.isnan
и не получил хитов.Любая помощь очень ценится.
PS: Насколько я могу судить, эта ошибка должна быть воспроизведена с тем, что я предоставил.Однако, если что-то отсутствует, пожалуйста, сообщите мне, чтобы я мог отредактировать сообщение.