0

3D 座標で 4 つの点 (または相互に接続された線) をプロットしたいと考えています。座標は X、Y、Z に格納されます。たとえば、次の行があります。

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.matrix('-1, 1, 1, 2')
Y = np.matrix('1, 2, 4, 6')
Z = np.matrix('3, 4, 2, 1')

ax.plot(X, Y, Z)
plt.show()

しかし、実行後、型エラーが発生します。numpyでの行列型の入力によるものだと思います。この問題を簡単に解決する方法を知っている人はいますか?

エラーメッセージ:

Traceback (most recent call last):
  File "C:\Users\I077165\Desktop\tmp.py", line 11, in <module>
    ax.plot(X, Y, Z)
  File "C:\Python27\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 1312, in plot
    lines = Axes.plot(self, xs, ys, *args[argsi:], **kwargs)
  File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 3848, in plot
    for line in self._get_lines(*args, **kwargs):
  File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 323, in _grab_next_args
    for seg in self._plot_args(remaining, kwargs):
  File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 284, in _plot_args
    raise ValueError, 'third arg must be a format string'
ValueError: third arg must be a format string

ありがとう。

4

1 に答える 1

3

3 つのデータセットすべてnp.array()の代わりに使用します。np.matrix()

したがって、X データの場合は、次のnp.matrix('-1, 1, 1, 2')ようになります。np.array([-1, 1, 1, 2])

于 2012-08-22T08:51:27.260 に答える