制作Python粉丝专用排行/粉丝图

Jak*_*kob 3 python plot data-visualization matplotlib python-2.7

我想在Python中制作一个粉丝图表类型的线图,类似于英格兰银行利率粉丝图,如下所示:

英格兰银行粉丝图表

我很熟练使用matplotlib作为标准线/条/散点图,但这似乎需要一些更自定义的实现.

我已经谷歌了,似乎找不到任何标准的Python库,它们可以完成这类工作甚至任何描述如何完成此操作的代码.

任何有关如何实现这一目标的帮助都将非常感激.

Ffi*_*ydd 7

您可以使用matplotlib.pyplot.fillbetween填充阴影区域来执行此操作.

下面的代码是一个玩具示例,它为简单的二次方执行此操作.它迭代vals并将这些添加到您的原始信号y并填充它们之间.对于每一个valvals其修改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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述