具有复杂z matplotlib的3D表面图

时间:2019-10-16 09:34:24

标签: python matplotlib 3d

我的x,y,z为:

x = list(range(20, 100, 20))
y = list(range(100, 200, 20))
Z = function(x, y, a, b)

其中a是具有datetimeindex和单列的Dataframe,b是布尔序列,函数给出一个数组Z((len(x),len(y))),函数是一个嵌套循环,内部使用了其他函数。 我想绘制一个曲面,该曲面通过以下方式显示z随x和y的变化:

X = list(range(20, 100, 20))
Y = list(range(100, 200, 20))
X, Y = np.meshgrid(X, Y)
Z = function(x, y, a, b) 
surf = ax.plot_surface(X, Y, Z, inewidth=0, antialiased=False)
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()

但是我收到此错误消息:

Traceback (most recent call last):
  File "C:/Users/simulation.py", line 82, in <module>
    linewidth=0, antialiased=False)
  File "C:\Users\baili\PycharmProjects\import_yahoo_data\venv_1\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 1621, in plot_surface
    X, Y, Z = np.broadcast_arrays(X, Y, Z)
  File "<__array_function__ internals>", line 6, in broadcast_arrays
  File "C:\Users\baili\AppData\Local\Programs\Python\Python37-32\lib\site-packages\numpy\lib\stride_tricks.py", line 264, in broadcast_arrays
    shape = _broadcast_shape(*args)
  File "C:\Users\baili\AppData\Local\Programs\Python\Python37-32\lib\site-packages\numpy\lib\stride_tricks.py", line 191, in _broadcast_shape
    b = np.broadcast(*args[:32])
ValueError: shape mismatch: objects cannot be broadcast to a single shape

我认为这与z函数有关。...但我不确定具体如何..... 谢谢!

0 个答案:

没有答案