2

ドキュメントページによると:http: //matplotlib.sourceforge.net/api/pyplot_api.htmlaxvline の使用方法は次のようになります。

axvline(x=0, ymin=0, ymax=1)

ただし、これは私のコンピューターでは機能しません。何も描かれていません。むしろ、単に

axvline(x=0)

yminとymaxを設定せずに動作します。

これがバグかどうかはわかりません。それとも私は微妙な何かを逃したのでしょうか?

matplotlib.__version__
'0.99.1.1'

uname -a
Linux pc20172 2.6.32-41-generic #94-Ubuntu SMP Fri Jul 6 18:00:34 UTC 2012 x86_64 GNU/Linux

編集:問題を再現するための最小限のコード。

from pylab import *
ion()
plot([1,2])
axvline(x=0.5, ymin=1, ymax=2) # No vertical line is drawn.

clf() # Clear the figure to redo the plot.
plot([1,2])
axvline(x=0.5) # Now the desired vertical line is drawn.
4

2 に答える 2

4

のドキュメントからhelp(axvline)

xyminからymaxまで垂直線を引きます。デフォルト値のymin =0およびymax =1の場合、この線は、ylimの設定に関係なく、たとえば軸を変更した場合でも、常に軸の垂直範囲にまたがります。:meth:set_ylimコマンドを使用します。 つまり、垂直範囲は軸座標にあります:0 =下、0.5 =中央、1.0 =上ですが、x位置はデータ座標にあります。

それで

axvline(x=0.5, ymin=1, ymax=2) # No vertical line is drawn.

プロット領域のすぐ外に線を引いています。線幅を大きくすると、次のようになります。

範囲外の効果を示す写真

于 2012-08-08T14:56:47.103 に答える
3

わかった。ここで、ymin と ymax はデータ座標ではなく、「正規化された」座標にあることに気付きました。したがって、0 はプロットの下を意味し、1 は上を意味します。

于 2012-08-08T14:59:33.743 に答える