1.问题概要
问题:用Hermite插值得到2024年收益率曲面,要求,给出程序代码以及曲面图,参考“中债债券收益率曲线和估值和估值基本原则”,工具不限,推荐用python。
给的数据为excel表格,数据为“2024年中债国债收益率曲线标准期限信息.xlsx”,要求实现最终结果如下图的代码:
2.题目分析
首先,我们分析题目所给出的文件,共有四列,一千多行,然后跟图片对比,要想实现题目的要求,我们绘制三维图需要:1、找到xyz轴的数据;2、使用python折线图函数;3、设置图例以及坐标轴标签。
这样,我们就能确定自己所需要的库以及技术。
3.整体架构流程
考虑题目要求使用python,所有只能用python来写,实际上要是想实现这个图,用matlab写起来也是很快的。使用python来绘制如上图的三维折面图,需要考虑用到如下几个三方库,保证已经pip安装好:
- pandas
- matplotlib
4.技术细节
编写该代码需要的基础有:
- 会使用pandas库,因为题目给的是excel文件,所以我们要用pandas处理数据。
- 会使用matplotlib,当然,这个库的函数特别多,我们不太可能一一记住函数用法,这时候只需要百度即可,或使用文心进行提问怎么进行折线图的绘制,我们得知绘三维图需要用到plot_trisurf这个函数。
- 数据的预处理,因为通过观察得知,我们excel第一列是一个时间数据,如果将其直接作为x轴的话是不可行的,我们需要将这一列全转为数字,用到的方法就是将相同的日期编为一个数值,例如前17个数据都改为0,后面改为1,其次是2,等等直到最后一行数据。
- 绘图并使用图例函数,将xyz的label设置为该题目中的要求。
具体代码如下
import pandas as pd
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from matplotlib.ticker import MaxNLocator
# 读取Excel文件
<