0

この回答は、y軸を逆にする方法を美しく示しています。ただし、この逆バージョンの座標系に関して、すべてのドットなどを描画したいと考えています。

次のすべてがこの目的に失敗していることがわかります。

plt.figure()
plt.gca().invert_yaxis()
plt.plot([1,2],[1,3]) # just a random line


plt.figure()
plt.plot([1,2],[1,3]) # just a random line
plt.gca().invert_yaxis()

どうすれば修正して動作させることができますか?


私にとって、OOP スタイルの図を使用する場合、つまり

fig = plt.figure()
axes = fig.add_axes([0.1, 0.1, 0.8, 0.8])
axes.plot([1,2],[1,3]) # just a random line
axes.invert_yaxis()

できます。

ただし、上記の現在の 2 つの非 OOP スタイルでは、y 軸が逆になった新しい図が作成されますが、線はありません。

4

1 に答える 1

1

あなたが投稿したスニペットを使用して元のエラーを再現することはまだできません (それは本当にすべてのコードですか?) plt.gca()。2 つの図をプロットする間に短い一時停止を挿入してみてください。

import time

plt.figure()
plt.gca().invert_yaxis()
plt.plot([1,2],[1,3]) # just a random line

time.sleep(0.1)

plt.figure()
plt.plot([1,2],[1,3]) # just a random line
plt.gca().invert_yaxis()

ただし、より一般的なポイントとして、対話型セッション中の利便性を除いてgca()andの使用を避けることを強くお勧めしますgcf().axesまたはfigureオブジェクトを明示的に渡す方がはるかにPythonicであり、正確にどのaxes/を追跡するのがはるかに簡単になります.数値修正中です。

于 2013-10-08T09:55:32.770 に答える