You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib水平图例列数设置:ncol还是ncols参数?

Matplotlib图例参数版本差异问题解答
  • 参数不兼容是版本迭代导致的
    你用的Matplotlib 3.4.3版本里,图例列数的参数就是ncol,而ncols是3.7.0及以后版本才新增的别名,旧版本不支持这个参数名。如果官方文档是对应新版本的,就会标注ncols,这就造成了文档和你当前版本的不一致。
    至于alignment参数,它也是3.7.0版本才新增的图例控制参数,用于调整图例项的对齐方式,你的3.4.3版本还未引入这个参数,所以会触发报错。

  • 3.4.3版本的正确用法
    继续使用ncol设置图例列数即可,你当前的代码是正确的,能实现图例的水平排列效果。
    如果需要类似alignment的对齐调整,在3.4.3版本中可以通过handletextpad(图例标记与文本的间距)、columnspacing(图例列之间的间距)这类参数间接实现,示例代码如下:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 1)
    ax = plt.subplot(2, 1, 1)
    for n in range(1, 5):
        plt.plot(x, x**n, label="n={0}".format(n))
    plt.legend(loc="upper left", bbox_to_anchor=[0, 1],
               ncol=2, shadow=True, title="Legend", fancybox=True,
               handletextpad=0.5, columnspacing=1.5)
    ax.get_legend().get_title().set_color("red")
    plt.show()
    
  • 避免文档混淆的小技巧
    查看Matplotlib官方文档时,记得切换到你正在使用的3.4.3版本(官网文档页面顶部有版本选择下拉框),这样看到的参数说明就会和你的版本完全匹配。

内容的提问来源于stack exchange,提问作者MrT77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 18:40:49