【问题标题】:Making a Python Fan Chart / Fan Plot制作 Python 扇形图/扇形图
【发布时间】:2015-03-02 10:11:33
【问题描述】:

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

我非常擅长将 matplotlib 用于标准线/条/散点图,但这似乎需要一些更自定义的实现。

我已经在 Google 上搜索过,但似乎找不到任何 Python 标准库可以执行此类操作,甚至找不到任何描述如何执行此操作的代码。

非常感谢任何有关如何实现这一目标的帮助。

【问题讨论】:

  • 查看 matplotlib 的 fill_between() 的粉丝,灰色的背景是,mm,可能是最简单的补丁。

标签: python python-2.7 matplotlib plot data-visualization


【解决方案1】:

您可以使用matplotlib.pyplot.fillbetween 来填充阴影区域。

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

正如我所说,这是一个玩具示例。您必须自己弄清楚如何将其与您的数据一起使用,但希望它能证明它是可以做到的。

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()

【讨论】:

    【解决方案2】:

    最近有一个在 Python 中创建扇形图(扇形图)的发展(见下面的帖子):

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

    此库允许您以与英格兰银行类似的方式创建粉丝图表,并且还包含其他工具。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多