3D Matplotlib图的Numpy矩阵

2024-09-27 04:25:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用以下matplotlib代码生成一个三维图形:

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, alpha=0.3)
cset = ax.contourf(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm)
cset = ax.contourf(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm)
cset = ax.contourf(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm)

ax.set_xlim(-50, 50)
ax.set_ylim(-50, 50)
ax.set_zlim(-100, 100)

plt.show()

问题是我想控制在图表中显示的矩阵。你知道吗

我一直在尝试numpy矩阵这一代

X = np.matrix([[-30., -10., 10.],[ -30., -10., 10.],[-30., -10., 10.]])

但是给了我一个错误:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

有人知道该怎么办吗? 事先谢谢你的帮助。你知道吗


Tags: fromimportmatplotlibascmpltaxoffset
1条回答
网友
1楼 · 发布于 2024-09-27 04:25:54

很简单。要知道输入X、Y和Z的数据的格式,请执行以下操作。你知道吗

在第X, Y, Z = axes3d.get_test_data(0.05)行之后添加这一行print X

您将知道输入格式。对于您的问题,请修改以下内容

X = np.matrix([[-30., -10., 10.],[ -30., -10., 10.],[-30., -10., 10.]])

X = [[-30., -10., 10.],[ -30., -10., 10.],[-30., -10., 10.]]

也相应地改变Y和Z。你知道吗

X = [[-30., -10., 10.],[ -30., -10., 10.],[-30., -10., 10.]]
Y = [[-30., -10., 10.],[ -30., -10., 10.],[-30., -10., 10.]]
Z = [[-30., -10., 10.],[ -30., -10., 10.],[-30., -10., 10.]]

相关问题 更多 >

    热门问题