(八)用Matplotlib画曲线图

准备工作

import numpy as np
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus']=False

绘制单个曲线图

#简单版本
beta=np.linspace(0.5,1.5,100)
rf=0.03;rm=0.1;ri=rf+beta*(rm-rf)
plt.plot(beta,ri)
Out[9]: [<matplotlib.lines.Line2D at 0x1efec87b400>]

(八)用Matplotlib画曲线图_第1张图片

#常用版本(加上一个点标记)
plt.figure(figsize=(9,6))#定义图形大小
plt.plot(beta,ri,'r-',label='证券市场线')#红色实线,虚线为':',label为图例名称
plt.plot(1,rf+1*(rm-rf),'o')#在市场收益率β=1处画一个点,用圆点标记
plt.xlabel('β值',fontsize=14)
plt.ylabel('单一资产收益率',fontsize=14)
plt.title('资本资产定价模型',fontsize=14)
plt.annotate('市场收益率',fontsize=14,xy=(1,0.1),xytext=(0.8,0.12),arrowprops=dict(facecolor='b',shrink=0.05))
#设置注释的内容、标记位置以及文本位置,设置箭头特征
plt.legend(loc=0)#显示图例,0表示最佳位置,空白表示自动
plt.grid()

(八)用Matplotlib画曲线图_第2张图片

绘制多个曲线图

HS300=pd.read_excel('C:/Users/lenovo/Desktop/quantitative investment/沪深300指数(2018年).xlsx',header=0,index_col=0)
HS300.head()
Out[14]: 
                 开盘点位       最高点位       最低点位       收盘点位
日期                                                    
2018-01-02  4045.2086  4087.7789  4045.2086  4087.4012
2018-01-03  4091.4607  4140.0543  4088.7302  4111.3925
2018-01-04  4114.1213  4137.6420  4105.8858  4128.8119
2018-01-05  4133.3439  4151.2818  4123.2817  4138.7505
2018-01-08  4140.8545  4166.3182  4127.3081  4160.1595
plt.figure(figsize=(10,9))#四张图的总大小
plt.subplot(221)#画第一行第一个图
plt.plot(HS300.开盘点位,'r:',label='2018沪深300开盘点位')
plt.xlabel('日期')#索引自动为x轴
plt.ylabel('点位')
plt.legend()
plt.grid()
plt.subplot(222)#画第一行第二个图
plt.plot(HS300.最高点位,'b-',label='2018沪深300最高点位')
plt.xlabel('日期')
plt.ylabel('点位')
plt.legend()
plt.grid()
plt.subplot(223)#画第二行第一个图
plt.plot(HS300.最低点位,'k--',label='2018沪深300最低点位')#短划线样式
plt.xlabel('日期')
plt.ylabel('点位')
plt.legend()
plt.grid()
plt.subplot(224)#画第二行第二个图
plt.plot(HS300.收盘点位,'g-.',label='2018沪深300收盘点位')#点实线样式
plt.xlabel('日期')
plt.ylabel('点位')
plt.legend()
plt.grid()

(八)用Matplotlib画曲线图_第3张图片

总结

1、常用的是figure(),plot(),subplot(),xlabel(),ylabel(),title(),legend()和grid()等函数;
2、注意不要写成xlabel=();
3、fontsize参数比较常用,用于设置字号大小;
4、rotation参数可以对ticks和label的角度进行调整。

你可能感兴趣的:(FRM的Python应用)