Matplotlib模块的操作

import matplotlib
print(matplotlib.__version__)
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False

曲线图

#单一曲线图
beta=np.linspace(0.5,2.0,100)
Rf=0.03
Rm=0.12
Ri=Rf+beta*(Rm-Rf)

plt.figure(figsize=(9,6))
plt.plot(beta,Ri,'r-',label='证券市场线',lw=2.0)
plt.plot(1.0,Rf+1.0*(Rm-Rf),'o',lw=2.5)
plt.axis('tight')
plt.xticks(fontsize=14)
plt.xlabel('贝塔值',fontsize=14)
plt.xlim(0.4,2.1)
plt.yticks(fontsize=14)
plt.ylabel(u'单一股票收益率',fontsize=14,rotation=90)
plt.ylim(0.07,0.22)
plt.title(u'资本资产定价模型',fontsize=14)
plt.annotate(u'贝塔等于1的收益',fontsize=14,xy=(1.0,0.12),xytext=(0.8,0.15),arrowprops=dict(facecolor='b',shrink=0.05))
plt.grid()
plt.legend(loc=0,fontsize=14)    #加上这行显示label
plt.show()

在这里插入图片描述

#多图绘制
HS300_new=pd.read_excel('D:/a_DUFE/000master_gogogo/python/配套彩图和数据/数据/第五章/沪深300指数(2016-2018).xlsx',sheet_name="Sheet1",header=0,index_col=0)
plt.figure(figsize=(11,9))
plt.subplot(2,2,1)
plt.plot(HS300_new['开盘点位'],'r-',label=u'沪深300开盘点位',lw=2.0)
plt.xticks(fontsize=13,rotation=30)
plt.xlabel(u'日期',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'点位',fontsize=13,rotation=90)
plt.legend(loc=0,fontsize=13)
plt.grid()
plt.subplot(2,2,2)
plt.plot(HS300_new['最高点位'],'b-',label=u'沪深300最高点位',lw=2.0)
plt.xticks(fontsize=13,rotation=30)
plt.xlabel(u'日期',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'点位',fontsize=13,rotation=90)
plt.legend(loc=0,fontsize=13)
plt.grid()
plt.subplot(2,2,3)
plt.plot(HS300_new['最低点位'],'c-',label=u'沪深300最低点位',lw=2.0)
plt.xticks(fontsize=13,rotation=30)
plt.xlabel(u'日期',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'点位',fontsize=13,rotation=90)
plt.legend(loc=0,fontsize=13)
plt.grid()
plt.subplot(2,2,4)
plt.plot(HS300_new['收盘点位'],'k-',label=u'沪深300收盘点位',lw=2.0)
plt.xticks(fontsize=13,rotation=30)
plt.xlabel(u'日期',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'点位',fontsize=13,rotation=90)
plt.legend(loc=0,fontsize=13)
plt.grid()
plt.show()

在这里插入图片描述

直方图

import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt

from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False

#单一样本的直方图
import numpy.random as npr

I=1000
x_norm=npr.normal(loc=0.8,scale=1.5,size=I)
x_logn=npr.lognormal(mean=0.5,sigma=1.0,size=I)
x_chi=npr.chisquare(df=4,size=I)
x_beta=npr.beta(a=2,b=4,size=I)

plt.figure(figsize=(12,10))
plt.subplot(2,2,1)
plt.hist(x_norm,label=u'正态分布的抽样',bins=20,facecolor='y',edgecolor='k')
plt.xticks(fontsize=13)
plt.xlabel(u'样本值',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'频数',fontsize=13,rotation=90)
plt.legend(loc=0,fontsize=13)
plt.grid(True)
plt.subplot(2,2,2)
plt.hist(x_logn,label=u'对数分布的抽样',bins=20,facecolor='r',edgecolor='k')
plt.xticks(fontsize=13)
plt.xlabel(u'样本值',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'频数',fontsize=13,rotation=90)
plt.legend(loc=0,fontsize=13)
plt.grid(True)
plt.subplot(2,2,3)
plt.hist(x_chi,label=u'卡方分布的抽样',bins=20,facecolor='b',edgecolor='k')
plt.xticks(fontsize=13)
plt.xlabel(u'样本值',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'频数',fontsize=13,rotation=90)
plt.legend(loc=0,fontsize=13)
plt.grid(True)
plt.subplot(2,2,4)
plt.hist(x_beta,label=u'贝塔分布的抽样',bins=20,facecolor='c',edgecolor='k')
plt.xticks(fontsize=13)
plt.xlabel(u'样本值',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'频数',fontsize=13,rotation=90)
plt.legend(loc=0,fontsize=13)
plt.grid(True)
plt.show()

在这里插入图片描述

import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt


from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False

#多个样本的直方图
import numpy.random as npr

I=1000
x_normal=npr.normal(loc=0.8,scale=1.5,size=(I,2))

plt.figure(figsize=(16,7))
plt.subplot(1,2,1)
plt.hist(x_normal,label=[u'正态分布的抽样数组1',u'正态分布的抽样数组2'],stacked=True,edgecolor='k',bins=30)
plt.xticks(fontsize=13)
plt.xlabel(u'样本值',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'频数',fontsize=13,rotation=90)
plt.title(u'正态分布随机抽取的两组样本值堆叠的直方图')
plt.legend(loc=0,fontsize=13)
plt.grid(True)
plt.subplot(1,2,2)
plt.hist(x_normal,label=[u'正态分布的抽样数组1',u'正态分布的抽样数组2'],edgecolor='k',bins=30)
plt.xticks(fontsize=13)
plt.xlabel(u'样本值',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'频数',fontsize=13,rotation=90)
plt.title(u'正态分布随机抽取的两组样本值并排的直方图')
plt.legend(loc=0,fontsize=13)
plt.grid(True)
plt.show()

在这里插入图片描述

条形图

import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt


from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False

return_array=np.array([[0.003731,0.021066,-0.004854,0.006098,-0.006060],[-0.001838,0.001842,-0.016544,-0.003738,0.003752],[-0.003087,-0.000344,-0.033391,0.007123,0.004597],[-0.024112,0.011704,-0.029563,-0.014570,0.016129]])
# print(return_array)
return_dataframe=pd.DataFrame(data=return_array.T,index=['2018-09-03','2018-09-04','2018-09-05','2018-09-06','2018-09-07'],columns=['中国石油','工商银行','上汽集团','宝钢股份'])
# print(return_dataFrame)

#垂直条形图
plt.figure(figsize=(12,10))
plt.subplot(2,2,1)
plt.bar(x=return_dataframe.columns,height=return_dataframe.iloc[0],width=0.5,label=u'2018年9月3日涨跌幅',facecolor='y')
plt.xticks(fontsize=13)
plt.yticks(fontsize=13)
plt.ylim(-0.035,0.025)
plt.ylabel(u'涨跌幅',fontsize=13,rotation=90)
plt.legend(loc=0,fontsize=13)
plt.grid(True)
plt.subplot(2,2,2)
plt.bar(x=return_dataframe.columns,height=return_dataframe.iloc[2],width=0.5,label=u'2018年9月5日涨跌幅',facecolor='C')
plt.xticks(fontsize=13)
plt.yticks(fontsize=13)
plt.ylim(-0.035,0.025)
plt.ylabel(u'涨跌幅',fontsize=13,rotation=90)
plt.legend(loc=0,fontsize=13)
plt.grid(True)
plt.subplot(2,2,3)
plt.bar(x=return_dataframe.columns,height=return_dataframe.iloc[3],width=0.5,label=u'2018年9月6日涨跌幅',facecolor='b')
plt.xticks(fontsize=13)
plt.yticks(fontsize=13)
plt.ylim(-0.035,0.025)
plt.ylabel(u'涨跌幅',fontsize=13,rotation=90)
plt.legend(loc=0,fontsize=13)
plt.grid(True)
plt.subplot(2,2,4)
plt.bar(x=return_dataframe.columns,height=return_dataframe.iloc[4],width=0.5,label=u'2018年9月7日涨跌幅',facecolor='g')
plt.xticks(fontsize=13)
plt.yticks(fontsize=13)
plt.ylim(-0.035,0.025)
plt.ylabel(u'涨跌幅',fontsize=13,rotation=90)
plt.legend(loc=0,fontsize=13)
plt.grid(True)
plt.show()

在这里插入图片描述

#水平条形图
plt.figure(figsize=(9,6))
plt.barh(y=return_dataframe.columns,width=return_dataframe.iloc[3],height=0.5,label=u'2018年9月6日涨跌幅')
plt.barh(y=return_dataframe.columns,width=return_dataframe.iloc[4],height=0.5,label=u'2018年9月7日涨跌幅')
plt.xticks(fontsize=13)
plt.xlabel(u'涨跌幅',fontsize=13)
plt.yticks(fontsize=13)
plt.title(u'水平条形图可视化股票的涨跌幅',fontsize=13)
plt.legend(loc=0,fontsize=13)
plt.show()

在这里插入图片描述

散点图

import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt


from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False

HS300_SZ180=pd.read_excel('D:/a_DUFE/000master_gogogo/python/配套彩图和数据/数据/第五章/沪深300指数与上证180指数的日涨跌幅(2016-2018).xlsx',sheet_name="Sheet1",header=0,index_col=0)
print(HS300_SZ180.head())
print(HS300_SZ180.tail())
print(HS300_SZ180.describe())
print(HS300_SZ180.corr())

plt.figure(figsize=(9,6))
plt.scatter(x=HS300_SZ180.iloc[:,0],y=HS300_SZ180.iloc[:,1],c='b',marker='o')
plt.xticks(fontsize=14)
plt.xlabel(u'沪深300指数涨跌幅',fontsize=14)
plt.xticks(fontsize=14)
plt.ylabel(u'上证180指数涨跌幅',fontsize=14,rotation=90)
plt.title(u'沪深300指数与上证180指数的涨跌幅散点图',fontsize=14)
plt.grid()
plt.show()

在这里插入图片描述

饼图

import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt


from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False

currency=['美元','欧元','人民币','日元','英镑']
perc=[0.4173,0.3093,0.1092,0.0833,0.0809]
plt.figure(figsize=(9,7))
plt.pie(x=perc,labels=currency)
plt.axis('equal')
plt.legend(loc=1,fontsize=13)
plt.title(u'特别提取权中不同币种的占比',fontsize=13)
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值