根据跨越边界的数量,用颜色突出显示超过或低于阈值的 matplotlib 点

2023-12-07

我有一个如下所示的图表:

我为获取该图(8 个图的序列之一)而运行的代码如下:

date_list =  list(df_testing_set['date'].unique())

random_date_list = list(np.random.choice(date_list,8))

df_new = df_testing_set[df_testing_set['date'].isin(random_date_list)]

for date1 in random_date_list:
df_new = df_testing_set[df_testing_set['date'] == date1]
title = date1

if df_new.iloc[0]['day'] in ['Saturday', 'Sunday']:
    df_shader = df_result_weekend.copy()
    title += " - Weekend"
else:
    df_shader = df_result_weekday.copy()
    title += " - Weekday"

y = df_new[row_index].tolist()
x = range(0, len(y))
x_axis = buckets
y_axis = df_shader.loc[df_shader.index.isin([row_index]) & df_shader['Bucket'].between(1, 144), data_field].tolist()
del y_axis[-1]


plt.title(title)
plt.xlabel("Time of Day (10m Intervals)")
plt.ylabel(data_field + " values for " + row_index)

standevs = df_shader.loc[df_shader.index.isin([row_index]) & df_shader['Bucket'].between(1, 144), 'StanDev'].tolist()
del standevs[-1]
lower_bound = np.array(y_axis) - np.array(standevs)
upper_bound = np.array(y_axis) + np.array(standevs)

plt.fill_between(x_axis, lower_bound, upper_bound, facecolor='lightblue')

#highlighting anomalies
#   if (y > upper_bound | y < lower_bound):
#       plt.plot(x,y, 'rx')
#   else:
#       plt.plot(x, y)



plt.plot(x,y)
plt.show()

del df_shader, title, date1, df_new

我正在尝试创建一个条件(如注释的 if 语句),以便当绘制的坐标高于阈值时upper_bound或以下lower_bound,这些点用不同颜色的“x”标记。我希望最终达到这样的效果:如果一个点超过阈值 1 个标准差,它将被标记为橙色,如果超过 2 个或更多标准差,它将被标记为红色。我有数据框中的所有标准差df_shader列下StanDev。每当我尝试运行 if 块的某些变体时,我都会收到变量错误和名称错误


您可以使用布尔掩码来选择满足某些条件的点, 并绘制它们:

import matplotlib.pyplot as plt
import numpy as np

std = 0.1
N = 100

x = np.linspace(0, 1, N)
expected_y = np.sin(2 * np.pi * x)
y = expected_y + np.random.normal(0, std, N)

dist = np.abs(y - expected_y) / std

mask1 = (1 < dist) & (dist <= 2)
mask2 = dist > 2

plt.fill_between(x, expected_y - 0.1, expected_y + 0.1, alpha=0.1)
plt.fill_between(x, expected_y - 0.2, expected_y + 0.2, alpha=0.1)

plt.plot(x, y)
plt.plot(x[mask1], y[mask1], 'x')
plt.plot(x[mask2], y[mask2], 'x')


plt.tight_layout()
plt.savefig('mp_points.png', dpi=300)

Result:

result

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

根据跨越边界的数量,用颜色突出显示超过或低于阈值的 matplotlib 点 的相关文章

随机推荐

  • 我尝试安装 React Native 并构建失败

    我尝试安装 React Native 但构建失败 为什么 Windows PowerShell 版权所有 C 微软公司 版权所有 尝试新的跨平台 PowerShellhttps aka ms pscore6 PS C Users stefa
  • Java RMI 中的代码库到底有什么意义?

    我目前正在学习 RMI 我不太理解代码库的概念 我读到的每篇论文都表明 调用远程对象的客户端可以从代码库加载方法定义 现在的问题是 我的类路径中是否不需要描述 接口 如果我只在运行时知道远程对象上的方法 我如何调用它们 这甚至无法编译 我完
  • 为什么我们需要在内联汇编中修改寄存器列表?

    我的指南书中写道 在内联汇编中 Clobered 寄存器列表用于告诉 我们正在使用的寄存器的编译器 因此它可以在之前清空它们 那 我完全不明白 为什么编译器需要知道这一点 保留这些寄存器有什么问题 他们的意思是备份它们并在汇编代码之后恢复它
  • 如何在列出另一个文件之前清除列表文件?

    function listFiles var x document getElementById ResultShown value var date new Date date setDate date getDate 180 var n
  • 如何在集成测试中测试Mongo索引?

    我有一个 Java 方法 它在 Mongo 集合中的两个字段上创建索引 我应该获取集合的索引信息 然后检查索引的名称和字段是否正确 为此编写集成测试最简洁的方法是什么 使用自定义 Hamcrest 匹配器来查看索引是否在集合中是否有意义 在
  • 如何从命令行运行路径中包含空格的 PowerShell 脚本?

    因此 我尝试了多种不同的方法来从命令行运行 PowerShell 脚本 但每种方法都会返回错误 这是这条路径 C Users test Documents test line space PS Script test ps1 我已经尝试过这
  • 带有 Influxdb 的 Grafana 世界地图面板不显示点

    我安装了 Grafana 的世界地图面板 但无法在世界地图面板上显示点 我在看Grafana 世界地图 表数据源和其他链接但没有找到答案 我尝试使用country json 添加截屏我的声誉没有 10 所以我无法添加超过 2 个链接 我也尝
  • 实际上从堆中为对象分配了多少内存?

    我有一个程序使用太多内存来在堆上分配大量小对象 所以我想研究一下优化它的方法 该程序使用Visual C 7编译 有没有办法确定为给定对象实际分配了多少内存 我的意思是当我打电话时new堆分配不小于必要的数量 我怎样才能知道到底分配了多少
  • 从 bash 脚本运行 makefile 命令并返回错误结果代码

    我有一个 python makefile 我可以从我的 bash 脚本运行它的命令 如下所示 local make lint output make lint output make test unit 2 gt 1 echo make l
  • 将 PHP 变量从一个页面传递到另一个页面,再传递到另一个页面 [重复]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中将值从页面传递到另一个页面 例如 我有3页 第一页将是一个常规的 HTML 登录页面 将要求输入用户名 第二页将通过 POST 函数获取此用户名变量并分配一个 php 变量 例如 use
  • Worklight http 适配器问题

    2个简单的问题 通过 http 适配器发出的所有 http 请求是否都会首先通过 worklight 服务器 如果是这样 那么是否意味着即使是对公共网站的 http 适配器请求 例如对 yahoo 网站的股票价格请求 也会首先通过 work
  • 自定义 XYJfree 图表中的条形颜色

    如何用不同的颜色绘制不同的条形 我尝试使用渲染器 这是我的示例代码 public IntervalXYDataset createDataset throws InterruptedException parseFile final XYS
  • .NET Standard 2.0 使用的兼容性填充程序

    概述 example NET Standard 2 0 表示它现在使用某种兼容性填充程序来修复第三方库兼容性问题 因此 您可以将第三方库与 NET Standard 一起使用 直到它不使用 NET Standard 没有的任何 API 不清
  • 如果 iCloud 设置为不同步提醒,则无法创建本地 EKCalendar(提醒)

    这里遇到了一个非常奇怪的问题 在我看来这是 EventKit API 的问题 我只是想检查一下我没有做什么 测试用例1 在应用程序的隐私中启用提醒 该设备有 iCloud 帐户 但设置为不同步提醒 我可以创建一个localApple 的 提
  • 从列表集合中删除重复项

    希望可以有人帮帮我 我正在使用 c 并且对它有点陌生 我正在将一个文本文件加载到我的应用程序中 并将数据拆分为 我正在将字符串的一部分读入
  • Android 设备上短信的默认字符集/编码是什么?

    如果有必要保持简单的话 我主要关心北美的英语手机 具体来说 当发送 接收短信和彩信时 字符是如何编码的 有区别吗 我的初步研究表明UTF 8是默认值 但我也看到了对US ASCII对于美国设备和其他区域设置的其他字符集 Quote 平台默认
  • 如何重新启动 TimerTask

    我编写了一个任务来通过套接字发送特定的 TCP 消息 我有一个包含一堆消息和一些时间戳的文件 因此我将该任务编程为 TimerTask 并使用具有第一个消息时间戳的计时器对其进行调度 当它完成时 任务运行方法结束 但其关联的线程仍然存在 并
  • AFNetworking 2.0下载多张图片完成

    我正在尝试找出一种使用 AFNewtorking 2 0 下载多个图像的方法 我在这里读了很多帖子 但找不到我正在寻找的答案 希望你们能帮助我 问题是我想知道所有下载何时完成以及所有图像是否已下载 所以我有一个带有图像 URL 的数组 蚂蚁
  • SQL 合并时出现 ORA-38104 错误的原因是什么?

    我有这样的代码 MERGE INTO target table tgt USING source table src on tgt c1 src c1 WHEN MATCHED THEN UPDATE SET tgt c1 src c2 I
  • 根据跨越边界的数量,用颜色突出显示超过或低于阈值的 matplotlib 点

    我有一个如下所示的图表 我为获取该图 8 个图的序列之一 而运行的代码如下 date list list df testing set date unique random date list list np random choice d