在matplotlib中将Y轴的标题旋转为水平

jms*_*980 2 python matplotlib axis-labels

我正在尝试旋转 Y 轴的标题,使其水平。我不希望刻度标签水平只是 Y 轴的标题。我必须使用子图,因为我一次制作多个图。这是我尝试旋转 Y 轴标题的以下脚本。

import matplotlib.pyplot as plt
import sys

fig, ax = plt.subplots()

ax.set_title(r'$\alpha$ > \beta_i$', fontsize=20)
ax.set(xlabel='meters $10^1$', ylabel=r'Hertz $(\frac{1}{s})$')
ax.set(xlabel=r's(t) = \mathcal(A)\/\sin(2 \omega t)', ylabel=r'Hertz $(\frac{1}{s})$')
ax.set(ylabel="North $\uparrow$",fontsize=9,rotate=90)
plt.show()
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到一个错误:

类型错误:没有 AxesSubplot 属性“旋转”

如何调整此程序以使 Y 轴水平旋转?

Sue*_*ver 7

通过使用,ax.set您试图设置文本对象的axes属性而不是ylabel文本对象的属性。

而不是使用,ax.set您可以使用xlabelandylabel来创建 x 和 y 标签并传入 kwargs 来修改它们的外观。此外,属性名称是rotation而不是rotate。你还需要设置rotation0作为默认90这就是为什么它在第一个地方的旋转。

plt.title(r'$\alpha > \beta_i$', fontsize=20)
plt.xlabel(r'meters $10^1$', fontsize=9)
plt.ylabel("North $\uparrow$", fontsize=9, rotation=0)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明