首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matplotlib get_legend_handles_labels总是返回空

matplotlib get_legend_handles_labels总是返回空
EN

Code Review用户
提问于 2017-05-28 09:05:00
回答 1查看 7.6K关注 0票数 4

当将元素添加到相同的图形中时,我遇到了问题。问题在于传说。在每次迭代时,我都会添加元素和相应的图例。但我希望这个传说包括所有迭代中的所有不同元素。

问题是函数get_legend_handles_labels()返回空句柄&标签列表。

守则如下:

代码语言:javascript
复制
    handles, labels = ax.get_legend_handles_labels()
    for key in legendMap.iterkeys():
        if key not in labels:
            handles.append(h[legendMap[key]])
            labels.append(key)

    ax.legend(handles, labels, loc='center left', bbox_to_anchor=(1, 0.5))
    h1,l1 = ax.get_legend_handles_labels()

h1、l1为空,而与句柄、标签相同。

下面的代码可以做到这一点,但我认为应该有更优雅的解决方案:

代码语言:javascript
复制
    legend = ax.get_legend()
    labels = [] if legend is None else [str(x._text) for x in legend.texts]
    handles = [] if legend is None else legend.legendHandles
    for key in legendMap.iterkeys():
        if key not in labels:
            handles.append(h[legendMap[key]])
            labels.append(key)

    ax.legend(handles, labels, loc='center left', bbox_to_anchor=(1, 0.5))

非常感谢您的帮助,谢谢!

EN

回答 1

Code Review用户

发布于 2018-05-28 12:02:05

添加曲线时,图表中的条形图指定标签,例如:

代码语言:javascript
复制
ax.plot(x, y, linewidth=1.75, color='#00ff00', label='curve1')

在那之后,一切都像魅力一样运作。

票数 2
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/164381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档