首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Windrose图例标签

Python Windrose图例标签
EN

Stack Overflow用户
提问于 2018-10-18 12:29:44
回答 1查看 1.7K关注 0票数 1

我正在尝试完全控制Windrose中的图例;图例由存储箱控制,可以使用ax.info['bins']调用这些存储箱。但是,我想更改bin组的名称。

在网上查看,我找到的唯一解决方案是编辑windrose的.py文件,编辑它,然后将其重新导入到python脚本中。

Python Windrose legend bracket format and loc

我正在寻找一种更简单的方法,因为我计划在脚本中为不同的情节设置不同的存储箱。到目前为止,我已经尝试了labelset_label,它们似乎不起作用。

EN

回答 1

Stack Overflow用户

发布于 2018-11-07 21:58:47

通过在ax.set_legend中添加一个labels参数并更改脚本以接受该参数。我还添加了一个小验证,用于在标签与句柄不匹配的情况下显示错误。

ax.set_legend(labels = ['T', 'S', 'M'], title="Failure Mode", loc="upper left")

代码语言:javascript
复制
    def get_labels(labels, decimal_places=1):
        _decimal_places = str(decimal_places)

        fmt = (
            "[%." + _decimal_places + "f " +
            ": %0." + _decimal_places + "f"
        )

        if labels is None:
            labels = np.copy(self._info['bins'])
            if locale.getlocale()[0] in ['fr_FR']:
                fmt += '['
            else:
                fmt += ')'
            labels = [fmt % (labels[i], labels[i + 1])
                for i in range(len(labels) - 1)]
        else:
            if len(labels) != len(self._info['bins']) -1 :
                print("ERROR")
            labels = labels

        return labels


    kwargs.pop('handles', None)

    decimal_places = kwargs.pop('decimal_places', 1)
    labels = kwargs.pop('labels', None)

    handles = get_handles()
    labels = get_labels(labels, decimal_places)
    self.legend_ = mpl.legend.Legend(self, handles, labels, loc, **kwargs)
    return self.legend_

更多信息:Github issue solution

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

https://stackoverflow.com/questions/52867057

复制
相关文章

相似问题

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