当前位置:  开发笔记 > 编程语言 > 正文

创建具有动态列数的matplotlib图例

如何解决《创建具有动态列数的matplotlib图例》经验,为你挑选了1个好方法。

我想在matplotlib中创建图例,每列最多5个条目。现在,我可以手动设置列数,如下所示:

leg = plt.legend(loc='best', fancybox=None, ncol=2)

如何修改此设置,以便每列最多允许5个条目?



1> Joe Kington..:

没有内置的方法来指定行数而不是列数。但是,您可以使用该ax._get_legend_handles()方法获取将添加到图例的项目数。

例如:

import numpy as np
import matplotlib.pyplot as plt

numlines = np.random.randint(1, 15)
x = np.linspace(0, 1, 10)

fig, ax = plt.subplots()
for i in range(1, numlines + 1):
    ax.plot(x, i * x, label='$y={}x$'.format(i))

numitems = len(list(ax._get_legend_handles()))
nrows = 5
ncols = int(np.ceil(numitems / float(nrows)))

ax.legend(ncol=ncols, loc='best')

plt.show()

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有