制作Python Fan Chart/Fan P

2024-06-01 05:56:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python制作一个扇形图类型的折线图,它类似于Bank of England Interest Rate fan charts,如下所示:

Bank of England Fan Chart

我对使用matplotlib进行标准的线/条/散点图有很好的实践经验,但是这似乎需要一些更定制的实现。在

我已经在Google上搜索过了,但似乎找不到任何标准的Python库来做这类事情,甚至找不到任何描述如何实现这一点的代码。在

对于如何实现这一目标的任何帮助都将不胜感激。在


Tags: of类型标准ratematplotlibgoogle事情bank
2条回答

可以使用^{}填充阴影区域。在

下面的代码是一个简单的二次函数的玩具示例。它迭代vals并将这些添加到原始信号y中并填充它们之间。对于vals中的每个val,它修改alpha参数。它还绘制了信号y本身,这与BoE图表的处理方式不同,如果您愿意,可以通过注释掉该行来删除它。在

就像我说的,这是一个玩具的例子。你必须自己弄清楚如何在数据中使用它,但希望它能证明它是可以做到的。在

import matplotlib.pyplot as plt
import numpy as np

N = 1000
x = np.linspace(0, 10, N)
y = x**2
ones = np.ones(N)

vals = [30, 20, 10] # Values to iterate over and add/subtract from y.

fig, ax = plt.subplots()

for i, val in enumerate(vals):
    alpha = 0.5*(i+1)/len(vals) # Modify the alpha value for each iteration.
    ax.fill_between(x, y+ones*val, y-ones*val, color='red', alpha=alpha)

ax.plot(x, y, color='red') # Plot the original signal

plt.show()

enter image description here

最近有一个在Python中创建扇形图(fan plots)的开发(参见下面的文章):

https://quantgirl.blog/fan-charts/

这个库允许您以与英格兰银行类似的方式创建扇形图,并且还包含其他工具。在

相关问题 更多 >