2015-03-02 110 views
1

我期待,使Python中的扇形圖型線圖,其類似於Bank of England Interest Rate fan charts像這樣的:製作一個Python扇形圖/風扇疊加

Bank of England Fan Chart

我很好用實踐用於標準線/條/散點圖的matplotlib,但是這看起來好像需要一些更自定義的實現。

我已經Google瞭解並且似乎無法找到任何標準的Python庫,它們完全可以做到這一點,甚至任何描述這種情況的代碼都可以完成。

任何有關如何實現這一目標的幫助將非常感激。

+0

退房matplotlib的'fill_between()'用於風扇,和灰色背景是,毫米,可能比較容易作爲修補。 – cphlewis 2015-03-02 10:22:29

回答

3

您可以使用matplotlib.pyplot.fillbetween來填充陰影區域。

下面的代碼是一個玩具的例子,它爲一個簡單的二次方。它迭代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