如何在 matplotlib 中创建具有垂直阴影的绘图[重复]

2023-12-19

I want to be able to replicate the following plot. enter image description here

x 轴上有时间,y 轴上有 GDP。 GDP 线只是每日时间历史(无论其值如何),而衰退数据具有以下结构(从 1/1/59 到今天,两个变量 CGD 和 Recession 共享相同的每日频率):

    Date    Regime
1   1/1/59  Normal
2   2/1/59  Normal
3   3/1/59  Normal
4   4/1/59  Normal
5   5/1/59  Normal
6   6/1/59  Normal
...
    
14  2/1/60  Normal
15  3/1/60  Normal
16  4/1/60  Recession
17  5/1/60  Recession
18  6/1/60  Recession
19  7/1/60  Recession
20  8/1/60  Recession
21  9/1/60  Recession
22  10/1/60 Recession
23  11/1/60 Recession
24  12/1/60 Recession
25  1/1/61  Recession
26  2/1/61  Normal
27  3/1/61  Normal

只有衰退部分必须用浅色绘制。

有人可以帮忙吗?

谢谢。路易吉


BigBen 的评论给出了使用的一个很好的提示plt.axvspan。正如您所指出的,您需要指定一个范围。特别是如果您有日期范围(并且每个日期只有一个值),您可以通过以下方式指定范围(date, date+1day).

plt.axvspan(day, day + datetime.timedelta(days=1), color="grey", alpha=0.5)

这是一个完整的示例:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import datetime
import random

regime_choices = ["Normal"]*9+["Recession"]

#create sample data and dataframe
datelist = pd.date_range(start="1959-01-01",end="1960-01-01").tolist()
df = pd.DataFrame(datelist, columns=["Date"])

regime = [random.choice(regime_choices) for i in range(len(datelist))]
df["Regime"] = regime


#plot command, save object in variable
plt.plot(df["Date"], np.arange(len(df)))

#filter out recession dates
recessions = df.loc[df["Regime"] == "Recession", 'Date']

#plot axvspan for every recession day
for day in recessions:
    plt.axvspan(day, day + datetime.timedelta(days=1), color="grey", alpha=0.5)
    
plt.show()

Result: enter image description here

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

如何在 matplotlib 中创建具有垂直阴影的绘图[重复] 的相关文章

随机推荐

  • 使用 VS2012 RC 构建 boost

    我刚刚下载了适用于 Windows 8 64 位的 Visual Studio 2012 RC 我尝试编译 boost 库 版本 1 51 但是当我在 Visual Studio 提示命令中执行 make 时 出现错误 我在帖子末尾发布了
  • 使用自定义配置运行 ng build

    我有 Angular 项目 我想将其部署在 Apache 服务器上 我用ng build但我想为后端自定义地址和端点 proxy conf json api target http localhost 8080 secure false l
  • 使用容器视图控制器访问导航栏

    编写自己的容器时关于 UINavigationController 和 UINavigatinBar 的两个问题 1 我使用故事板创建了初始容器并将其嵌入到 UINavigationController 中 我发现 childViewCon
  • java缓存hashmap每天都会过期

    我想要一个HashMap
  • 如何从 C++ COM 迁移到 C++CLI

    我有一个通过 COM 公开内容的 C DLL 我想将其转换为公开托管接口的 C CLI 理想情况下 我只需添加 CLI 并一一转换接口即可 到目前为止我还没有取得任何成功 所以我正在寻找具体的策略 更多详情 很久以前 我创建了一个使用 CO
  • 世界地图与 ggmap

    我正在使用 ggmap 并希望有一张以澳大利亚为中心的世界地图 我可以轻松地绘制地理编码点 与其他一些地图包相比 ggmap 似乎更容易使用 然而 当我使用下面的代码浏览地图时 它会出错 gc lt geocode australia ce
  • Random ArrayIndexOutOfBoundsException,使用流按值对 Map 元素进行排序

    最近几天 我开始 玩 一些 Java 8 功能 例如流 我研究了一些文档和几个示例 在我的应用程序中 我有一个 Map 我需要获取具有最高值的三个元素 浮动部分 我尝试对我的代码进行不同的修改 其中一些解决方案还 按值对 Map 进行排序
  • Membership.ValidateUser 在 IIS 上始终返回 false

    Membership ValidateUser 方法适用于开发服务器 iis express 和 cassini 但在我的 IIS 上 它作为我的开发机器上的应用程序发布 它总是返回false 即使用户被批准 也不会被锁定 并且用户名和密码
  • 在 ACE 编辑器中应用Deltas

    我正在尝试在 Ace 编辑器中保存更改操作 然后回放它们 下面有一些伪代码 要点是 applyDeltas API 似乎没有为我的编辑器做任何事情 我绑定到编辑器更改事件 将更改增量推送到数组 并尝试稍后播放它 当我运行下面的代码时 我没有
  • data:text/html 处的网页对于某些 WebView text/html 内容字符串不可用

    我正在使用以下 Java 代码创建一些用于显示内容的 HTML public String htmlFromArrayList ArrayList
  • 如何写入 BitLocker 加密卷的物理扇区?

    I call CreateFile 我打开 PhysicalDrive0 然后我读取了 BitLocker 加密卷的扇区 一切正常 通过这种方式 我可以创建使用 BitLocker 加密的卷的物理 加密 扇区的备份副本 然后 我打电话Cre
  • Java - 使用流+ lambda 的多个集合的交集

    我有以下函数用于统一多个集合 包括重复元素 public static
  • oracle中的varchar2排序是如何工作的?

    我正在按 Varchar2 列对 Oracle SQL 查询进行排序 但是当我得到结果时 我无法正确理解顺序 这是逻辑顺序 第一个小写字母 数字 符号 在这里 我附上其中一项测试的结果排序 select FieldToOrder from
  • 如何从同一项目中的另一个 Kubernetes 集群调用 Kubernetes 集群公开的服务

    我有两个服务 集群 K1 中的 S1 和集群 K2 中的 S2 他们有不同的硬件要求 服务 S1 需要与 S2 通信 出于安全原因 我不想公开 S2 的公共 IP 在 K2 集群的计算实例上使用 NodePorts 和网络负载平衡会降低灵活
  • 如何调整 PyQt4 中 QMenuBar 的大小以适应 4K 显示

    我需要用 Python 编写一个带有用户界面的应用程序 我决定使用 PyQt4 来制作 GUI 它包含在 Python 的 Anaconda 发行版中 让 GUI 在 4K 显示器上流畅运行并非易事 默认情况下 大多数组件都太小 有些组件
  • 无法安装 vim 表格插件

    没有安装说明tabular https github com godlygeek tabular插入 我尝试将文件复制到正确的文件夹中 或者放入 vim bundle为了让病原体处理它 在这两种情况下 当我加载 vim 时 我都会收到以下错
  • HTML img src 位于根文件夹之外

    我试图引用源文件夹外部的图像文件 目前的结构是 Images img1 png My Source Folder Page 1 index html 从index html 文件中 我想引用img1 png 文件 我尝试了以下代码 img
  • IDLE 的子进程未建立连接。 IDLE 无法启动或个人防火墙软件阻止连接

    我尝试卸载它并搜索其他答案 它们都没有起作用 IDLE 打开 但我无法运行我编写的任何内容 在 Windows 10 中 1 输入 受控文件夹访问 2 选择 允许应用程序通过受控文件夹访问 对 UAC 选择 是 3 单击 添加允许的应用程序
  • java.lang.Math.PI 等于 GCC 的 M_PI 吗?

    我正在用 Java 和 C C 编写一些参考算法 其中一些算法使用 我希望每个算法的两种实现都能产生完全相同的结果 没有不同的舍入 迄今为止一直有效的一种方法是使用自定义的pi常量 在两种语言中完全相同 例如 3 14159 然而 当 Ja
  • 如何在 matplotlib 中创建具有垂直阴影的绘图[重复]

    这个问题在这里已经有答案了 I want to be able to replicate the following plot x 轴上有时间 y 轴上有 GDP GDP 线只是每日时间历史 无论其值如何 而衰退数据具有以下结构 从 1 1