gpt4 book ai didi

python - matplotlib 图例位置默认

转载 作者:太空狗 更新时间:2023-10-30 02:30:22 27 4
gpt4 key购买 nike

我经常使用 legend(loc='best')。我注意到它似乎默认位于右上角,如果有很多空间可用的话。但是,我希望 loc='best' 默认位于左上角。 (如何)有可能改变这种行为?

最佳答案

你可以 monkeypatch matplotlib.legend.Legend._get_anchored_bbox。此函数包含以下代码:

BEST, UR, UL, LL, LR, R, CL, CR, LC, UC, C = list(xrange(11))

anchor_coefs = {UR: "NE",
UL: "NW",
LL: "SW",
LR: "SE",
R: "E",
CL: "W",
CR: "E",
LC: "S",
UC: "N",
C: "C"}

这会将连续的“位置代码”映射到空间位置。 _find_best_position 中的不良计算代码通过占据序列中最早的位置来打破不良关系,因此右上角将获胜,除非另一个位置实际上更好。我认为您可以安全地交换代码,方法是编写一个新版本的函数,将第一行更改为:

 BEST, UL, UR, LL, LR, R, CL, CR, LC, UC, C = list(xrange(11))

请注意,我切换了 UL 和 UR。当我在一个简单的 V 形图上尝试这样做时,它在更改前将图例放在右上角,但在更改后放在左上角。

要在更改中进行 monkeypatch,您应该重新定义您自己的 _get_anchored_bbox 版本,然后执行 matplotlib.legend.Legend._get_anchored_bbox = my_get_anchored_bbox

任何此类 monkeypatched 解决方案都应视为脆弱的。如果在以后的 matplotlib 版本中发生某些更改,它可能会中断,因为它涉及覆盖您不应该搞砸的内部功能。在 matplotlib 邮件列表上询问,或在错误跟踪器中提出问题,请求可配置的参数来设置打破平局顺序可能是更好的主意。

关于python - matplotlib 图例位置默认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27536076/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com