我正在尝试旋转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条答案
按热度按时间vhmi4jdf1#
通过使用
ax.set
,您试图设置axes
的属性,而不是ylabel
文本对象的属性。您可以使用
xlabel
和ylabel
来创建x和y标签,并传入kwargs来修改它们的外观,而不是使用ax.set
。属性名也是rotation
而不是rotate
。此外,您还需要将rotation
设置为0
,因为默认值为90
,这就是它首先旋转的原因。thtygnil2#
而另一个answer可以工作,它需要从显式的Axes接口切换到隐式的pyplot接口,这是不应该做的。
set_ylabel()
**kwargs
Text
属性:文字特性控制标签的外观。matplotlib.text
position
设置文本的(x,y)位置。xy
:(float, float)
rotation
设置文本的旋转。s
:float or {'vertical', 'horizontal'}
。数学上正方向(逆时针)的旋转Angular (以度为单位)。“水平”等于0,“垂直”等于90。rotation_mode
设置文本旋转模式。m
:{None, 'default', 'anchor'}
.如果是None
或'default'
,文本将首先旋转,然后根据其水平和垂直对齐方式对齐。如果为'anchor'
,则在旋转之前进行对齐。