【问题标题】:How to print Y axis label horizontally in a matplotlib / pylab chart?如何在 matplotlib / pylab 图表中水平打印 Y 轴标签?
【发布时间】:2015-02-24 15:05:23
【问题描述】:

我正在使用 matplotlib / pylab Python 模块创建非常简单的图表。标记 Y 轴的字母“y”在其一侧。如果标签较长(例如单词),您会期望这样做,以免将图形的外部向左延伸太多。但是对于一个字母的标签,这是没有意义的,标签应该是直立的。我的搜索是空白的。如何水平打印“y”?

【问题讨论】:

    标签: python matplotlib label


    【解决方案1】:

    这很简单。绘制标签后,您可以简单地更改旋转:

    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)
    • 嘿,这很优雅。谢谢,乔。
    • 没错。我没有查看文档,只是使用了句柄上的点完成
    【解决方案2】:

    当我们使用特定的轴对象ax 时,扩展已接受的答案:

    ax.set_ylabel('abc', rotation=0, fontsize=20, labelpad=20)
    

    请注意,labelpad 通常也需要手动调整 - 否则“abc”会侵入绘图。

    通过简短的实验,我猜labelpad 是刻度标签的边界框与 y 标签中心之间的偏移量。 (所以,不是顾名思义的填充——如果这是与标签边界框的间隙,它会更直观。)

    【讨论】:

    • 为了更清楚,您可以考虑rotation='horizontal'。此外,您可以添加参数ha='right',而不是选择任意labelpad(然后需要根据结果进行调整),其中hahorizontalalignment 关键字的方便缩写。
    • va="center"verticalalignment
    • 如何在不改变现有标签的情况下设置方向?当通过外部模块 librosa.display.specshow() 设置标签时,这是必需的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多