Я пытаюсь создать простой imshow() участок (Matplotlib v.1.2.1) из 2D гауссовой функции:Matplotlib imshow() слишком много объектов для CMAP
import matplotlib.pyplot as plt
import numpy as np
from pylab import *
def gaussian(x,y,stdx,stdy):
return 1.0/(2*np.pi*stdx*stdy) * (np.exp(-0.5*(x**2/stdx**2 + y**2/stdy**2)))
coords = np.linspace(-1,1,100)
X,Y = np.meshgrid(coords,coords)
std_list = np.linspace(1,2,20)
output = [gaussian(X,Y,std_list[i],std_list[i]) for i in range(len(std_list))]
for i in range(len(output)):
plt.imshow(X,Y,np.array(output[i]),cmap='bone')
plt.show()
И я получаю следующие ошибка:
Traceback (most recent call last):
File "blur.py", line 14, in <module>
plt.imshow(X,Y,np.array(output[i]),cmap='bone')
TypeError: imshow() got multiple values for keyword argument 'cmap'
в самом деле, чтобы убедиться, что я не сошел с ума, я вынул CMAP аргумент в целом, и теперь я получаю следующее сообщение об ошибке:
Traceback (most recent call last):
File "blur.py", line 14, in <module>
plt.imshow(X,Y,np.array(output[i]))
File "/home/username/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", line 2737, in imshow
imlim=imlim, resample=resample, url=url, **kwargs)
File "/home/username/anaconda/lib/python2.7/site-packages/matplotlib/axes.py", line 7098, in imshow
if norm is not None: assert(isinstance(norm, mcolors.Normalize))
AssertionError
Я убедился, что аргументы imshow() имеют одинаковую форму, поэтому я не совсем уверен, что я делаю неправильно. Может ли это быть ошибкой?
Спасибо за быстрый ответ! Я всегда забываю, какие функции используют степень, а какие могут принимать в np.ndarrays в качестве входных данных. – astromax