Plot和Fill_Better的组合图例条目 [英] Combined legend entry for plot and fill_between

查看:13
本文介绍了Plot和Fill_Better的组合图例条目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这类似于Matlab: Combine the legends of shaded error and solid line mean,除了Matplotlib。示例代码:

import numpy as np
import matplotlib.pyplot as plt

x = np.array([0,1])
y = x + 1
f,a = plt.subplots()
a.fill_between(x,y+0.5,y-0.5,alpha=0.5,color='b')
a.plot(x,y,color='b',label='Stuff',linewidth=3)
a.legend()

plt.show()

上面的代码生成如下所示的图例:

如何创建将fill_between中的底纹和plot中的线条组合在一起的图例条目,使其看起来像这样(在Gimp中制作的样机):

推荐答案

mpl支持图例的元组输入,这样您就可以创建复合图例条目(参见this页的最后一图)。但是,从现在起,图例不支持PolyCollection(填充_BETWEEN CREATE/RETURN),因此简单地将PolyCollection作为元组中的条目提供给图例是不起作用的(a fix is anticipated for mpl 1.5.x)。

在补丁出现之前,我建议将proxy artist与‘tuple’图例条目功能结合使用。您可以使用mpl.patches.Patch接口(如代理艺术家页面上所示),也可以只使用Fill。例如:

import numpy as np
import matplotlib.pyplot as plt

x = np.array([0, 1])
y = x + 1
f, a = plt.subplots()
a.fill_between(x, y + 0.5, y - 0.5, alpha=0.5, color='b')
p1 = a.plot(x, y, color='b', linewidth=3)
p2 = a.fill(np.NaN, np.NaN, 'b', alpha=0.5)
a.legend([(p2[0], p1[0]), ], ['Stuff'])

plt.show()

这篇关于Plot和Fill_Better的组合图例条目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆