绘制国债收益率曲线,如何使用matplotlib叠加两条收益率曲线

时间:2015-10-08 13:41:30

标签: python pandas matplotlib

我正在尝试创建treasury yield curve的图表,以比较两个不同日期的费率。我很难将两条曲线组合起来并创建一个干净的图形。 我的问题:如何将两条收益率曲线绘制在一起,收益率(利率)在y轴上,到期日(2年,5年,10年,20年,30年)在x轴?

import numpy as np
import pandas as pd
import datetime as dt
import pandas.io.data as web
import matplotlib.pyplot as plt
import Quandl as q
from pandas import DataFrame
import matplotlib
matplotlib.style.use('ggplot')

treasury = q.get("USTREASURY/YIELD", trim_start="2000-01-01", returns="pandas")

fig, ax = plt.subplots()

treas = DataFrame(treasury)
treas.drop(treas.columns[[0,1,2,3,5,7]], axis=1, inplace=True)
today = treas.iloc[-1:]
first = treas.iloc[:1]
first = first.T
today = today.T

ax.plot(first, 'o')
ax.plot(today, 'x')

#first.plot(marker='o')
#today.plot(marker='o')
plt.show()

这是我目前的情节。我试图翻转轴,因此每条收益率曲线都是带标记的线。enter image description here

2 个答案:

答案 0 :(得分:5)

这是你在找什么?

import matplotlib.pyplot as plt
import pandas as pd
import Quandl as ql
%matplotlib inline

yield_ = ql.get("USTREASURY/YIELD")
today = yield_.iloc[-1,:]
month_ago = yield_.iloc[-30,:]
df = pd.concat([today, month_ago], axis=1)
df.columns = ['today', 'month_ago']

df.plot(style={'today': 'ro-', 'month_ago': 'bx--'}
        ,title='Treasury Yield Curve, %');

enter image description here

答案 1 :(得分:1)

仅供参考: 我正在使用 python 3.8 和带有 anaconda 的 spyder。我花了很多时间对 Quandl 的“模块未找到”错误进行故障排除,结果发现它应该是 quandl(小写)。