python - 等高线图python中的长错误

标签 python numpy matplotlib plot contour

我正在尝试创建一个等高线图,其中 x 坐标标记为 EF,y 标记为 EB,z 是标记为 a 的函数。它返回下面发布的一个长错误。任何帮助,将不胜感激。 错误是

File "contour.py", line 19, in <module>
c = plt.contour(EF,EB,a)
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 2016, in contour
    ret = ax.contour(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 7326, in contour
    return mcontour.QuadContourSet(self, *args, **kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/contour.py", line 1088, in __init__
    ContourSet.__init__(self, ax, *args, **kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/contour.py", line 686, in __init__
    self._process_args(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/contour.py", line 1101, in _process_args
    x, y, z = self._contour_args(args, kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/contour.py", line 1148, in _contour_args
    x,y,z = self._check_xyz(args[:3], kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/contour.py", line 1180, in _check_xyz
    raise TypeError("Input z must be a 2D array.")
TypeError: Input z must be a 2D array.

最佳答案

错误指出

TypeError: Input z must be a 2D array. 

如果您查看输入对象的大小:

print EF.shape, EB.shape, a.shape
(51,) (51,) (51,)

您会看到这些不是二维数组。您是否打算改用 XY

当我做出改变时

a = ((1+.5*(np.exp(1.7*X)+np.exp(1.7*Y)+np.exp(1.7*(X+Y))))/(1+np.exp(1.7*X)+np.exp(1.7*Y)+np.exp(1.7*(X+Y))))
c = plt.contour(EF,EB,a,30)

输出是

enter image description here

看起来您可能需要调整参数空间,因为所有有趣的东西都在 (0,0) 附近。

关于python - 等高线图python中的长错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18407307/

相关文章:

python - 将自定义 numba njit 函数应用于 pandas 滚动对象

python - 如何在 Streamlit 中更改 pandas 数据框中行的颜色?

python - pandas 按列分组,查找多列的最小值,并为组中的最小行创建新列

python - 有效地计算图像python的方差

python - 在 matlibplot python 中以对数刻度填充曲线下的区域

python - 在 Eclipse 命令行中运行 python 函数

c# - 相当于 .NET 和 Python 中的\Q\E?

python - 使用 Python/Pandas/Numpy 计算图形/图中的循环数

python - matplotlib PdfPages - 存储具有大量数据的绘图的有损副本

python - 溢出错误图