Python:mplot3d,绘制实体图

标签 python matplotlib plot mplot3d

我正在尝试绘制旋转线框实体图。我正在遵循球体 here 的示例但我有点不知所措。我已经简化了一切,但现在陷入了错误。我还在查看 here 描述的函数参数,但除非我误解了什么,否则这段代码应该没问题。我确实意识到我试图在这里绘制的是一条线而不是一个形状,但我不明白为什么我不能使用这种方法来绘制它。我试图让这个例子尽可能简单,这样我就可以继续绘制实际的实体。这是:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plot
import numpy
import pylab

fig = plot.figure()
ax = Axes3D(fig)

n = numpy.linspace(0, 100)

x = n
y = x**2
z = 1
ax.plot_wireframe(x, y, z)

plot.show()

错误如下:

Traceback (most recent call last):
  File "test.py", line 14, in <module>
    ax.plot_wireframe(x, y, z)
  File "/usr/lib/pymodules/python2.6/mpl_toolkits/mplot3d/axes3d.py", line 687, in plot_wireframe
    rows, cols = Z.shape
AttributeError: 'int' object has no attribute 'shape'

最佳答案

当 matplotlib 以大写字母写入数据参数时,这意味着它需要数据矩阵。您可以使用 meshgrid 函数(请参阅 example for mplot3d )来生成网格。

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plot
import numpy
import pylab

fig = plot.figure()
ax = Axes3D(fig)

n = numpy.linspace(0, 100)

x = n
y = x**2

X, Y = numpy.meshgrid(x, y)
Z = numpy.ones_like( X )

ax.plot_wireframe(X, Y, Z)

请注意,在您给出的示例中,球体的网格点是使用 outer product 构建的。 .

关于Python:mplot3d,绘制实体图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4405156/

相关文章:

python - 为什么我的代码无法绘制有向图的箭头?

r - R中的多项式拟合和绘制回归线

python - 在堆叠条形图中将出现频率绘制为字母高度

javascript - 当绘图完成渲染时触发的 Shiny 事件

python - 我可以在 Web2Py 中包含局部 View ,将特定变量传递给它吗?

python:无效的base64编码字符串:数据字符数(5)不能多于4的倍数1

Python 3 如何检查一个值是否已经在列表中

python - matplotlib 中的矢量格式热图

Python matplotlib 显示

python - 具有相同数据集的 Keras 中 fit() 和 evaluate() 的不同准确度