2

ワイヤーフレームの回転立体をグラフ化しようとしています。ここでは球の例に従っていますが、少し迷っています。すべてを単純化しましたが、エラーが発生しました。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'
4

1 に答える 1

3

matplotlib がデータ引数を大文字で書き込む場合、それはデータの行列を期待していることを意味します。meshgrid関数 ( の例を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)

あなたが与えた例では、球のメッシュポイントは外積を使用して構築されていることに注意してください。

于 2010-12-10T02:43:58.047 に答える