我正在使用matplotlib / pylab Python模块创建非常简单的图表。标记Y轴的字母“y”在其一侧。如果标签较长(例如单词),则会出现这种情况,以免将图的外部向左扩展太多。但是对于一个字母的标签,这是没有意义的;标签应直立。我怎样才能水平地显示“y”?
ecfdbz9o1#
很简单。打印标签后,您可以简单地更改旋转:
import matplotlib.pyplot as plt plt.ion() plt.plot([1, 2, 3]) plt.ylabel("y", rotation=0) # or # h = plt.ylabel("y") # h.set_rotation(0) plt.draw()
93ze6v8z2#
扩展已接受的答案,当我们使用特定轴对象ax时:
ax
ax.set_ylabel('abc', rotation=0, fontsize=20, labelpad=20)
请注意,通常labelpad也需要手动调整-否则“abc”会侵入图中。根据简单的实验,我猜测labelpad是刻度标签的边界框和y标签中心之间的偏移量。(因此,不完全是名称所暗示的填充-如果这是到标签的边界框差距,则会更直观。
labelpad
6gpjuf903#
Axes对象定义了yaxis(和xaxis),它具有label属性,可以使用set()方法进行更改。因此,例如,为了改变旋转、水平对齐等。在y标记中,可以使用以下内容:
yaxis
xaxis
label
set()
ax.yaxis.label.set(rotation='horizontal', ha='right');
如果使用外部模块(如librosa、perfplot等)绘制图形,这一点尤其有用。其中,y标签设置在模块的盖下,并且您想要旋转它。
x = y = range(3) plt.plot(x, y) plt.ylabel('y label') plt.gca().yaxis.label.set(rotation='horizontal', ha='right');
3条答案
按热度按时间ecfdbz9o1#
很简单。打印标签后,您可以简单地更改旋转:
93ze6v8z2#
扩展已接受的答案,当我们使用特定轴对象
ax
时:请注意,通常
labelpad
也需要手动调整-否则“abc”会侵入图中。根据简单的实验,我猜测
labelpad
是刻度标签的边界框和y标签中心之间的偏移量。(因此,不完全是名称所暗示的填充-如果这是到标签的边界框差距,则会更直观。6gpjuf903#
Axes对象定义了
yaxis
(和xaxis
),它具有label
属性,可以使用set()
方法进行更改。因此,例如,为了改变旋转、水平对齐等。在y标记中,可以使用以下内容:如果使用外部模块(如librosa、perfplot等)绘制图形,这一点尤其有用。其中,y标签设置在模块的盖下,并且您想要旋转它。