【问题标题】:position matplotlib label above the subplot将 matplotlib 标签定位在子图上方
【发布时间】:2015-02-08 04:51:50
【问题描述】:

现在默认情况下,matplotlib 图例位于我所有子图的右上角(比如一组 3 个水平乘以 3 个垂直)。

然而,在某些情况下,图例会掩盖一些趋势线,所以我想将图例定位在子图本身的上方,这可能吗?

【问题讨论】:

    标签: python matplotlib pandas legend prettyplotlib


    【解决方案1】:

    图例的位置是使用legendloc 参数指定的。您可以尝试使用'best' 选项,看看它是否能避开线条。如果您想将图例框放置在绘图区域之外,可以查看legend guide 中描述的技术。

    这是一个 3×3 的子图网格,在图的右上角有一个图例:

    import matplotlib.pyplot as plt
    for i in range(9):
        plt.subplot(3, 3, i+1)
        plt.plot([0, 1], [0, 1])
    plt.subplot(3, 3, 3)
    plt.legend(['test'], bbox_to_anchor=(0, 1, 1, 0.5), mode='expand')
    plt.tight_layout()
    

    【讨论】:

    • 查看图例指南后,我看不到任何结果是子图顶部的图例(而不是在它内部阻塞趋势线)的任何技术。你能指出一个输出和代码的例子吗?
    • "Legend Location"下的例子。它具有子图和子图区域外的图例。
    • 谢谢@chthonicdaemon - 我在哪里可以了解更多关于“bbox_to_anchor”的信息,它似乎负责 1)图例在子图上方的定位和 2)文本的定位,所以它是关闭的向左居中或居中对齐(当它位于子图上方时)。
    • 即“plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,ncol=2, mode="expand", borderaxespad=0.)" 的四个参数中是 0。=左 1.02 = 右上角等?
    • 左下角是(x, y),左下角是(x, y, x, y)。
    猜你喜欢
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2013-04-03
    • 1970-01-01
    相关资源
    最近更新 更多