旋转y轴标签

3

我正在尝试将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()

当我运行它时,出现了一个错误:

TypeError: 没有AxesSubplot属性"rotate"

我该如何修改这个程序,使得Y轴水平旋转?

2个回答

8
通过使用ax.set,您试图设置axes的属性,而不是ylabel文本对象的属性。
相比使用ax.set,您可以使用xlabelylabel创建x和y标签,并传递kwargs以修改它们的外观。此外,属性名称应为rotation,而不是rotate。还要将rotation设置为0,因为默认值为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)

enter image description here


1

虽然另一个答案是有效的,但它需要从显式轴界面切换到隐式pyplot界面,这样做是不应该的

set_ylabel()

**kwargs Text 属性:文本属性控制标签的外观。

matplotlib.text

position 设置文本的(x,y)位置。 xy(float, float) rotation 设置文本的旋转角度。 sfloat或{'vertical', 'horizontal'}。数学上正方向(逆时针)的旋转角度,其中'horizontal'等于0,'vertical'等于90。 rotation_mode 设置文本的旋转模式。 m{None,'default','anchor'}。如果是None'default',则先旋转文本,然后根据水平和垂直对齐方式对齐。如果是'anchor',则在旋转之前进行对齐。
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

ax.set_title(r'$\alpha > \beta_i$', fontsize=20)
ax.set(xlabel='meters $10^1$')
ax.set_ylabel(r'$North \uparrow$', fontsize=9, rotation=0)
plt.show()

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接