python - Matplotlib imshow() cmap 对象太多

标签 python matplotlib

我正在尝试创建一个二维高斯函数的简单 imshow() 图(matplotlib v.1.2.1):

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( ) 的参数都具有相同的形状,所以我不完全确定我做错了什么。这可能是一个错误吗?

最佳答案

imshow 不会将 xyz 作为输入。 (不过,pcolorpcolormesh 可以)。

要么使用 pcolormesh(x, y, z),要么使用 extent kwarg 来显示。

例如

plt.imshow(Z, extent=[X.min(), X.max(), Y.min(), Y.max()],
           cmap='bone')

plt.pcolormesh(X, Y, Z, cmap='bone')

发生的事情是 imshow 期望的

imshow(X, cmap=None, norm=None, aspect=None, interpolation=None,
         alpha=None, vmin=None, vmax=None, origin=None, extent=None,
         **kwargs)

请注意,第二个参数是 cmap,这解释了为什么当您传入一个额外的 cmap kwarg 时会出现错误。

希望这能澄清一些事情!祝你好运!

关于python - Matplotlib imshow() cmap 对象太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18478240/

相关文章:

Python相同的颜色条用于函数的实/虚等高线图的子图

python - 如何仅接受5种可能的输入

python - 在 Inkscape 中显示/隐藏扩展界面的元素

python - 使用 xlsxwriter 左对齐行

button - Matplotlib 按钮

python将多个子图图形保存为pdf

python - Pandas - 条形图和折线图 - 日期时间轴

python - 如何更改 Seaborn FacetGrid 中子图标题和轴标签的位置?

python - 在 Python 上对不同深度的列表子列表进行排列,同时保持它们独立

python - 将复选框动态插入到 tabWidget 中