为 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() 段的不同颜色添加图例 的相关文章

  • 使用 Pandas 和 Group By 绘制堆叠直方图

    我正在使用如下所示的数据集 Gender Height Width Male 23 4 4 4 Female 45 4 4 5 我想可视化高度和宽度的堆叠直方图 我希望每个图有两个堆叠的直方图 每个性别一个 这是文档中的堆叠直方图 如果存在
  • 在子图中显示多个图像

    如何使用 matplotlib 函数 plt imshow image 显示多个图像 例如我的代码如下 for file in images process file def process filename image mpimg imr
  • 如何消除 matplotlib 轴的相对偏移

    当我尝试对具有足够大数字的范围进行绘图时 我得到一个所有刻度都有相对偏移的轴 例如 plot 1000 1001 1002 1 2 3 我在横坐标轴上得到这些刻度 0 0 0 5 1 0 1 5 2 0 1e3 问题是如何删除 1e3并得到
  • 向二元 kdeplot 添加标签

    我喜欢 Seaborn 的例子多个双变量 KDE 图 https seaborn pydata org examples multiple joint kde html 但我希望在该示例中使用标准 matplotlib 图例而不是自定义标签
  • 使用三个一维数组绘制等值线图

    正如标题所示 我想使用三个一维数组绘制等高线图 这么说吧 x np array 1 2 3 and y np array 1 2 3 and z np array 20 21 45 为了在 matplotlib 中绘制等高线图 我对x an
  • pick_event 使用 matplotlib 获取点

    我正在尝试使用pick event通过单击鼠标直接访问点的精确值 def plot self x values list y values list def pick handler event x y event mouseevent x
  • 读取 CSV 并绘制彩色折线图

    我正在尝试在阈值之前和之后绘制带有彩色标记的图表 如果我使用 for 循环for随着时间的推移读取解析输入文件H M我只能绘制和着色两个点 但对于所有的点我无法绘制 Input akdj 12 00 34515 sdfg sgqv 13 0
  • Matplotlib:检查空图

    我有一个循环加载并绘制一些数据 如下所示 import os import numpy as np import matplotlib pyplot as plt for filename in filenames plt figure i
  • matplotlib 中矩形面片之间存在不需要的空间

    以下代码绘制两个红色矩形 红色矩形应该彼此相邻 之间没有空间 在 python 图中 这是可以的 在导出的 pdf 中 矩形之间有一个细长但明显的空白 有什么方法可以解决这个问题吗 import matplotlib pyplot as p
  • 为什么 Jupyter Notebook 在更新绘图时会创建重复的绘图

    我正在尝试在 Jupyter Notebook 中绘制每秒更新一次的绘图 现在 我只有一个可以运行的简单代码 matplotlib inline import time import pylab as plt import numpy as
  • 如何向通过 Seaborn 热图渲染的混淆矩阵添加工具提示?

    如何使我的 matplotlib 具有交互性 例如 当我将鼠标悬停在混淆矩阵的每个单元格上时 我想显示该预测的实例 confusion mat df pd DataFrame confusion mat columns pred spect
  • 如果值小于零,则更改条形图的颜色并填充空白

    我创建了一个数据框 df tail 20 Speed 130 0 000272 131 0 000219 132 0 000178 133 0 000234 134 0 000261 135 0 000281 136 0 000244 13
  • pcolormesh 的输入格式

    我正在尝试使用底图制作热量 强度图 我的输入是当时的一组纬度 经度和强度 数据集如下所示 lat 0 lon 0 intensity 0 lat 1 lon 1 intensity 1 lat n lon n intensity n 在每个
  • 使用 numpy 和 matplotlib 绘制总和直方图,而不是计数

    我有一些每行两列的数据 就我而言 工作提交时间和区域 我使用 matplotlib 的 hist 函数生成一个图表 其中 x 轴上按天划分时间 y 轴上按天计数 import numpy as np import matplotlib py
  • 如何在 PyQt5 GUI 中快速绘制 matplotlib 实时绘图

    几年前 我已经尝试过嵌入现场matplotlib中的情节PyQt5图形用户界面 实时绘图显示从传感器捕获的实时数据流 某些过程 我已经成功了 您可以在此处阅读相关帖子 您自己的 GUI 中的 Matplotlib 动画 https stac
  • python ImportError:没有名为 Tkinter 的模块

    每次我尝试奔跑import matplotlib 我有错误ImportError No module named Tkinter 输出结果如下所示 Python 2 7 5 default Aug 2 2016 04 20 16 GCC 4
  • 如何更改单个群体的位置

    我正在绘制一个分组条形图 在其上覆盖群图和误差条 其中一个组只有一个栏 我希望它 与群和错误栏一起 出现在分配给这组栏的位置的中间 我设法移动了栏和错误栏 但不知道如何移动群 这是我的代码 import seaborn as sns imp
  • 删除网格线,但保留框架(matplotlib 中的 ggplot2 样式)

    使用 Matplotlib 我想删除图中的网格线 同时保留框架 即轴线 我已经尝试过下面的代码和其他选项 但我无法让它工作 如何在删除网格线的同时保留框架 我这样做是为了在 matplotlib 中重现 ggplot2 图 我在下面创建了一
  • 缩放插图中不同的 x 和 y 比例,matplotlib

    我正在尝试使用 matplotlib 制作插图 目前我有类似最后一个答案的内容如何缩放图像的一部分并插入到 matplotlib 中的同一图中 https stackoverflow com questions 13583153 how t
  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic

随机推荐