Pylotを使用して標準の2D折れ線グラフを描画したいのですが、軸の値を強制的にxで0〜600、yで10kおよび20kにします。例を挙げましょう...
import pylab as p
p.title(save_file)
p.axis([0.0,600.0,1000000.0,2000000.0])
#define keys and items elsewhere..
p.plot(keys,items)
p.savefig(save_file, dpi=100)
ただし、軸は引き続きデータのサイズに調整されます。 p.axisの効果は、maxとminを強制するのではなく、maxとminを設定できるように解釈しています。 p.xlim()などを使用しようとすると同じことが起こります。
何かご意見は?
ありがとう。
制限を設定した後に_p.plot
_を呼び出すことが、再スケーリングの理由です。自動スケーリングをオフにすると正しい答えが得られるという点で正しいですが、xlim()
またはylim()
を呼び出しますafter your plot
コマンド。
私はこれをかなり使ってx軸を反転させ、天文学で働いており、後方にある等級システムを使用しています(つまり、明るい星ほど小さい等級を持っています)。
_lims = xlim()
xlim([lims[1], lims[0]])
_
私自身の質問に答えるために、トリックは自動スケーリングをオフにすることです...
p.axis([0.0,600.0, 10000.0,20000.0])
ax = p.gca()
ax.set_autoscale_on(False)
上記の答えをすべて試した後、固定軸画像の描画方法のパイプラインをまとめました。 show
関数とsavefig
関数の両方に適用されました。
プロットする前に:
_fig = pylab.figure()
ax = fig.gca()
ax.set_autoscale_on(False)
_
これは、subplot(1,1,1)
であるax
を要求することです。
プロット中:
_ax.plot('You plot argument') # Put inside your argument, like ax.plot(x,y,label='test')
ax.axis('The list of range') # Put in side your range [xmin,xmax,ymin,ymax], like ax.axis([-5,5,-5,200])
_
プロットの後:
画像を表示するには:
_fig.show()
_
図を保存するには:
_fig.savefig('the name of your figure')
_
_autoscale_on
_をaxis
に設定していても、コードの先頭にFalse
を配置しても機能しないことがわかりました。
このコードを使用して、一連のアニメーションを作成しました。以下は、複数の固定軸の画像を組み合わせてアニメーションにする例です。
すべてのプロットコマンドの後にaxis
を呼び出してみてください。