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>]
#常用版本(加上一个点标记)
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()
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()
1、常用的是figure(),plot(),subplot(),xlabel(),ylabel(),title(),legend()和grid()等函数;
2、注意不要写成xlabel=();
3、fontsize参数比较常用,用于设置字号大小;
4、rotation参数可以对ticks和label的角度进行调整。