修复 matplotlib 中图例的大小

Lax*_*nor 4 python matplotlib

我正在尝试使用 matplotlib 制作自动绘图,其中几个不同的特征绘制在彼此之上(背景是填充的等高线图,上面一层是 pcolormesh)。我试图绘制的最重要的功能是几个散点图,具有不同的标签和图标。

我正在尝试向该图添加图例,当前使用以下命令:

leg = ax.legend(legplots,
           legnames,
           scatterpoints=1,
           loc='upper center',
           ncol=3,
           fontsize=14,
         bbox_to_anchor=(0.5, -0.14),
          fancybox=True, shadow=True)
Run Code Online (Sandbox Code Playgroud)

假设 ax 是主轴,legplots 和legnames 分别是散点图及其相应标签的列表。

添加图例工作正常,但随着我拥有的腿图数量(及其名称长度)的变化,当您对图进行动画处理时,图例的大小会增大和缩小。如何控制图例框的大小和图例内的列宽?这可能吗?

Imp*_*est 5

目前您的边界框大小为 0,因为您只指定了它的位置 ( (0.5, -0.14))。

您可以将图例的边界框设置为大于 0,并且也足够大以适应最大数量的元素所需的最大尺寸。我认为您需要通过反复试验来找到该尺寸。

因此使用完整的 4 元组表示法

bbox_to_anchor=(x0, y0, width, height)
Run Code Online (Sandbox Code Playgroud)

与适当的loc参数和关键字参数结合使用mode="expand",您可以使图例足够大以满足您的需要。有关 4 元组表示法的更详细说明,请参阅这篇文章并查看图例位置指南