为 fill_ Between() 段的不同颜色添加图例

2024-05-23

我正在创建一个“事件图”,目前如下所示:

但是,我不知道如何为每个颜色组添加图例。这就是目前情节的创建方式:

handles = dict()

for i, channel_events in enumerate(channel_event_list):

    for event in channel_events:
        start = event[0]
        end = event[1]
        y = (i, i + padding)
        
        c = 'red' if colors is None else colors[i]

        h = plt.fill_between([start, end], y[0], y2=y[1], color=c)
        
        if c not in handles:
            handles[c] = list()
        handles[c].append(h)

我想我可以使用的输出fill_between()作为手柄,但似乎我在那里弄错了。

那么,仅针对此处的颜色获取图例的最简单方法是什么?


从创建图例句柄fill_between打电话,或者只是任何其他PolyCollection您可以使用此 PolyCollection 并将其提供给图例。

import matplotlib.pyplot as plt

h = plt.fill_between([1,2,3],[1,3,4], y2=[1,2,3], color="#c1009b")

plt.legend(handles=[h], labels=["MyLabel"])
plt.show()

更简单的方法是直接使用label的论点fill_between用于创建自动图例条目的图(就像任何其他图一样)。

import matplotlib.pyplot as plt

plt.fill_between([0,1,2],[4,3,4], y2=[3,2.5,3], color="#c1009b", label="Label1")
plt.fill_between([0,1,1.3],[1,2,0.5], y2=[0,-1,0], color="#005ec1", label="Label2")
plt.fill_between([2,3,4],[0.5,1,0], y2=[-1,-1,-1.5], color="#005ec1", label="_noLabel")

plt.legend()
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 fill_ Between() 段的不同颜色添加图例 的相关文章

随机推荐