web-dev-qa-db-ja.com

matplotlibの図に線が表示されるラベルの作成

Matplotlib(時系列データ)で作成されたフィギュアがあり、その上に一連の

matplotlib.pyplot.axvline

行。これらの垂直線の近く(おそらく、線のRHS上および図の上部)に表示されるラベルをプロットに作成します。

33
tripkane

次のようなものを使用できます

plt.axvline(10)
plt.text(10.1,0,'blah',rotation=90)

textのxとyの値を調整して適切に調整する必要がある場合があります。より完全なドキュメント here を見つけることができます。

55
Dan

手動で配置しないソリューションは、「ブレンド変換」を使用することです。

変換 座標をある座標系から別の座標系に変換します。 transformtextパラメーターを使用して変換を指定することにより、テキストのxおよびy座標を指定できます。軸座標系(それぞれ、x/y軸の左から右/上から下へ0から1になります)。 混合変換 を使用すると、混合座標系を使用できます。

これはまさにあなたが必要とするものです:データによって与えられたx座標があり、テキストを軸に対してどこか、たとえば中央にy軸に配置したいのです。これを行うコードは次のようになります。

import matplotlib.transforms as transforms
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

# the x coords of this transformation are data, and the
# y coord are axes
trans = transforms.blended_transform_factory(
    ax.transData, ax.transAxes)

x = 10
ax.axvline(x)
plt.text(x, .5, 'hello', transform=trans)

plt.show()
2
ingomueller.net