【发布时间】:2015-02-24 15:05:23
【问题描述】:
我正在使用 matplotlib / pylab Python 模块创建非常简单的图表。标记 Y 轴的字母“y”在其一侧。如果标签较长(例如单词),您会期望这样做,以免将图形的外部向左延伸太多。但是对于一个字母的标签,这是没有意义的,标签应该是直立的。我的搜索是空白的。如何水平打印“y”?
【问题讨论】:
标签: python matplotlib label
我正在使用 matplotlib / pylab Python 模块创建非常简单的图表。标记 Y 轴的字母“y”在其一侧。如果标签较长(例如单词),您会期望这样做,以免将图形的外部向左延伸太多。但是对于一个字母的标签,这是没有意义的,标签应该是直立的。我的搜索是空白的。如何水平打印“y”?
【问题讨论】:
标签: python matplotlib label
这很简单。绘制标签后,您可以简单地更改旋转:
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)
【讨论】:
plt.ylabel。 (例如plt.ylabel('y', rotation=0))
当我们使用特定的轴对象ax 时,扩展已接受的答案:
ax.set_ylabel('abc', rotation=0, fontsize=20, labelpad=20)
请注意,labelpad 通常也需要手动调整 - 否则“abc”会侵入绘图。
通过简短的实验,我猜labelpad 是刻度标签的边界框与 y 标签中心之间的偏移量。 (所以,不是顾名思义的填充——如果这是与标签边界框的间隙,它会更直观。)
【讨论】:
rotation='horizontal'。此外,您可以添加参数ha='right',而不是选择任意labelpad(然后需要根据结果进行调整),其中ha 是horizontalalignment 关键字的方便缩写。
va="center" 为verticalalignment。
librosa.display.specshow() 设置标签时,这是必需的。