03金融数据可视化自用保存——条形图

《基于Python的金融分析和风险管理》学习笔记保存——条形图

例子还是以一个包含4支股票的投资组合
 

图1

先将需要的包导入 

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
from pylab import mpl
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
plt.rcParams['font.size'] = 13 # 控制字体大小

首先创建这个投资组合的数据框

import pandas as pd
stock_return=np.array([[0.003731,0.021066,-0.004854,0.006098,-0.00606],[-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.01457,0.016129]])
date=['2018-09-03','2018-09-04','2018-09-05','2018-09-06','2018-09-07']
stock=['中国石油','工商银行','上汽集团','宝钢股份']
return_dataframe=pd.DataFrame(data=stock_return.T,index=date,columns=stock)
return_dataframe

输出是图1 

下面展示垂直条形图,使用bar()函数

plt.figure(figsize=(12,10))
plt.subplot(2,2,1)
#x=x坐标对应的相关数据,X轴在本列中对应数据框的列(4支股票),height=图形的高度,这个图要画的4个股票在9月3号这天的涨跌幅所以用iloc来选取行,0代表第一行。width代表宽度
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)
#9月5日的数据,与上图不同的是,在高度选择时,选第三行,iloc【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)
#y轴刻度范围的选择要根据数据的范围来选ylim()
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)

 水平条形图,使用函数barh()

将不同交易日,不同股票的涨跌幅放置在一张水平条形图上

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.grid(True)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值