【问题标题】:Plotting Treasury Yield Curve, how to overlay two yield curves using matplotlib绘制国债收益率曲线,如何使用 matplotlib 叠加两条收益率曲线
【发布时间】:2022-05-04 03:20:16
【问题描述】:

我正在尝试创建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()

【问题讨论】:

  • 您能否包含当前情节并解释您的预期?
  • 基本上,我希望它看起来就像我添加的treasury.gov 链接中的收益率曲线。
  • 你的意思是你想要用一条线连接的点,还是还有更多?
  • 是的,我想要用一条线连接的点,但我的主要问题是它们没有按照我希望的方式绘制(y 轴上的收益率,x 轴上的成熟度轴)。现在,它被翻转了。
  • ax.plot(maturity, yield, '-o')

标签: python pandas matplotlib


【解决方案1】:

这就是你要找的吗?

import matplotlib.pyplot as plt
import pandas as pd
import quandl as ql
#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, %');

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 好点。在提出这个问题后不久,他们将其从 Quandl 更改为 quandl,我想是在 2016 年的某个时候。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    相关资源
    最近更新 更多