行を基準にしたテキストの回転#

matplotlib のテキスト オブジェクトは、通常、画面座標系に対して回転します (つまり、45 度の回転では、軸がどのように変更されても、水平と垂直の間の線に沿ってテキストがプロットされます)。ただし、プロット上の何かに対してテキストを回転させたい場合があります。この場合、正しい角度は、プロット座標系でのそのオブジェクトの角度ではなく、画面座標系でのそのオブジェクトの表示角度になります。この角度は、次の例に示すように、パラメータ transform_rotates_textを設定することで自動的に決定できます。

行に対するテキストの回転
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()

# Plot diagonal line (45 degrees)
h = ax.plot(range(0, 10), range(0, 10))

# set limits so that it no longer looks on screen to be 45 degrees
ax.set_xlim([-10, 20])

# Locations to plot text
l1 = np.array((1, 1))
l2 = np.array((5, 5))

# Rotate angle
angle = 45

# Plot text
th1 = ax.text(*l1, 'text not rotated correctly', fontsize=16,
              rotation=angle, rotation_mode='anchor')
th2 = ax.text(*l2, 'text rotated correctly', fontsize=16,
              rotation=angle, rotation_mode='anchor',
              transform_rotates_text=True)

plt.show()

Sphinx-Gallery によって生成されたギャラリー