私はPython 3.4.3を使用しており、システムをアップグレードすることはできません。 私の問題は、私は私が前のPython 3.5は、スターを付けた表現のみexprlistで最後の項目として許可されていることを、取得this questionからmatplotlib
とmpl_toolkits.mplot3d
SyntaxErrorによる3df wireframプロット(matplotlib)のスワップ軸:名前付き引数のみが続く場合があります*式
ax.plot_wireframe(*a,b, rstride=1, cstride=2)
>> SyntaxError: only named arguments may follow *expression
を使用した3Dワイヤーフレームグラフを生成するかしたいということです。
Doing ax.plot_wireframe(b,*a, rstride=1, cstride=2)
が動作しますが、これはもちろん、ねじれた軸を持つプロットになります。
私の質問: wireframプロットから軸を交換するpossibiltyがあります(代わりに等量ax.plot_wireframe(Z,X,Y)
(X,Y,Z)
、または開梱
さらなる詳細は私の問題のために別の回避策があります:?
a = np.meshgrid(np.arange(ys.shape[0]),xs)
b = ys.T
print(ys.shape)
>>(448, 33)
print(ys.shape[0])
>>488
print(b.shape)
>>(33,448)
print(xs.shape)
>>(33,)
は、
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ 私は、問題を回避するために、Pythonに必要なもの、つまり名前付き引数を与えることで回避できました。 したがって、行は次のようになります。
は、リストやタプルであるならば、あなたはもちろん、単にb
を入れた後、追加を使用することができます
from itertools import chain
ax.plot_wireframe(*chain(a, (b,)), rstride=1, cstride=2)
:どの程度チェーンb
a
からitertools.chain
を使用し、1枚でそれらの両方を解凍
ax.plot_wireframe(*a,Z=b)
ax.plot_wireframe(*チェーン(、(bが、)))ファイル「〜/ Pythonの-3.4.3/libに/ python3.4 /サイト・パッケージを生成します/matplotlib-1.4.3-py3.4-linux-x86_64.egg/mpl_toolkits/mplot3d/axes3d.py "、1775行目、plot_wireframe linec = art3d.Line3DCollection(lines、* args、** kwargs) ファイル" 〜/ Python-3.4.3/lib/python3.4/site-packages/matplotlib-1.4.3-py3.4-linux-x86_64.egg/mpl_toolkits/mplot3d/art3d.py "、行171、__init__ LineCollection .__ init __(自己、セグメント、* args、** kwargs) TypeError:_ _init __()は2から12の位置引数を取りますが、34が与えられました –
@ t.rathjenデモを見てください。 –
'a'にはいくつのオブジェクトがありますか? –