ValuError вызвано SymLogNorm - PullRequest
       1

ValuError вызвано SymLogNorm

0 голосов
/ 04 декабря 2018

Я пытаюсь обобщить устаревший код и должен был создать функцию для построения графиков.Приведенный ниже код является самой простой формой, которую я мог придумать, чтобы представить ее, также поддерживая реплицируемость.

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

def graphs(arr, sub, fig):
   cm=plt.cm.jet
   cm.set_under('white')
   image=sub.imshow(arr,origin='low',cmap=cm,norm=colors.SymLogNorm(linthresh=10))
   sub.axis([-100,100,-100,100])
   divider = make_axes_locatable(sub)
   fig.colorbar(image, cax=divider.append_axes("right", size="5%", pad=0.05))

T=np.random.rand(204,204)*np.nan
T[:T.size//2:2] = 2

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

T.npy - это файл , содержащий массив numpy снекоторые цифры, но в основном NaN с.Когда я удаляю аргумент norm, код работает (но не правильно, так как мне нужны также и отрицательные значения).Итак, я понял, что SymLogNorm является виновником.Я получаю ошибку:

ValueError: Both *x_transform* and *y_transform* must be 2D affine transforms

Я не могу заставить ее работать.Мои поиски «аффинных преобразований» не были плодотворными.Любая помощь очень ценится.

PS Я старался изо всех сил, чтобы сделать ее воспроизводимой.Однако, если чего-то не хватает, пожалуйста, дайте мне знать, чтобы я мог отредактировать сообщение.

РЕДАКТИРОВАТЬ: я заменил файл T.npy на массив для простоты репликации.Ошибка та же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...