web-dev-qa-db-ja.com

matplotlib / pylabチャートでY軸ラベルを水平に印刷する方法は?

Matplotlib/pylab Python module。Y軸にラベルを付ける「y」という文字が横にあります。ラベルが長い場合は、これが予想されます。グラフの外側を左に広げすぎないようにWordを使用しますが、1文字のラベルの場合、これは理にかなっていないため、ラベルは直立している必要があります。 「y」は水平に?

46
Karl D

とても簡単です。ラベルをプロットした後、単純に回転を変更できます。

from matplotlib import pyplot as plt
plt.ion()
plt.plot([1,2,3])
h = plt.ylabel('y')
h.set_rotation(0)
plt.draw()

または、回転を引数として渡すことができます、すなわち

plt.ylabel('y',rotation=0)
84
Jens Munk

特定のAxesオブジェクトaxを操作するとき、受け入れられた答えを拡張します。

ax.set_ylabel('abc', rotation=0, fontsize=20, labelpad=20)

多くの場合、labelpadも手動で調整する必要があることに注意してください。そうしないと、「abc」がプロットに侵入します。

簡単な実験から、labelpadは目盛りラベルの境界ボックスとyラベルの中心の間のオフセットであると推測しています。 (つまり、名前が示すパディングではなく、これがラベルの境界ボックスとのギャップであれば、より直感的だったでしょう。)

41
Evgeni Sergeev