当前位置: 首页 > news >正文

智慧金融-数据可视化

智慧金融-数据可视化

导入所需的库

import numpy as np
import numpy_financial as npf
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['FangSong']
mpl.rcParams['axes.unicode_minus']=False

单图曲线图

r = 0.05  # 贷款的年利率
n = 30 # 贷款的期限(年)
principle = 8e6 # 贷款的本金
pay_month=npf.pmt(rate=r/12, nper=n*12, pv=principle, fv=0, when='end') # 计算每月支付的本息之和
print('每月偿还的金额',round(pay_month,2)) 

每月偿还的金额 -42945.73

T_list=np.arange(n*12)+1 # 生成一个包含每次还款期限的数组prin_month=npf.ppmt(rate=r/12,per=T_list,nper=n*12,pv=principle,fv=0,when='end') # 计算每月偿还的本金金额
inte_month=npf.ipmt(rate=r/12,per=T_list,nper=n*12,pv=principle,fv=0,when='end') # 计算每月偿还的本金金额pay_month_list=pay_month*np.ones_like(prin_month) # 创建每月偿还金额的数组plt.figure(figsize=(9,6),frameon=False)
plt.plot(T_list,-pay_month_list,'r-',label=u'每月偿还金额',lw=2.5)
plt.plot(T_list,-prin_month,'m--',label=u'每月偿还本金金额',lw=2.5)
plt.plot(T_list,-inte_month,'b--',label=u'每月偿还利息金额',lw=2.5)
plt.xlabel(u'逐次偿还的期限(月)', fontsize=14)
plt.yticks(fontsize=13)
plt.ylabel(u'金额',fontsize=13)
plt.title(u'等额本息还款规则下每月偿还的金额以及本金利息', fontsize=14)
plt.legend(loc=0, fontsize=13)
plt.grid()
plt.show()

在这里插入图片描述

多图曲线图

import pandas as pd
import matplotlib.pyplot as pltSZ_Index = pd.read_excel('data/深证成指每日价格数据(2018-2020年).xlsx',sheet_name='Sheet1',header=0,index_col=0)
SZ_Index.index # 显示行索引的格式

Index([‘2018-01-02’, ‘2018-01-03’, ‘2018-01-04’, ‘2018-01-05’, ‘2018-01-08’,
‘2018-01-09’, ‘2018-01-10’, ‘2018-01-11’, ‘2018-01-12’, ‘2018-01-15’,

‘2020-12-18’, ‘2020-12-21’, ‘2020-12-22’, ‘2020-12-23’, ‘2020-12-24’,
‘2020-12-25’, ‘2020-12-28’, ‘2020-12-29’, ‘2020-12-30’, ‘2020-12-31’],
dtype=‘object’, name=‘日期’, length=730)

SZ_Index.index=pd.DatetimeIndex(SZ_Index.index) # 将数据框的行索引转换为 Datatime 格式
SZ_Index.index # 显示更新后的行索引的格式,由原来的 object 格式转换为了 datatime 格式

DatetimeIndex([‘2018-01-02’, ‘2018-01-03’, ‘2018-01-04’, ‘2018-01-05’,
‘2018-01-08’, ‘2018-01-09’, ‘2018-01-10’, ‘2018-01-11’,
‘2018-01-12’, ‘2018-01-15’,

‘2020-12-18’, ‘2020-12-21’, ‘2020-12-22’, ‘2020-12-23’,
‘2020-12-24’, ‘2020-12-25’, ‘2020-12-28’, ‘2020-12-29’,
‘2020-12-30’, ‘2020-12-31’],
dtype=‘datetime64[ns]’, name=‘日期’, length=730, freq=None)

plt.figure(figsize=(11,9))
plt.subplot(2,2,1)
plt.plot(SZ_Index['开盘价'],'r-',label=u'深证成指开盘价',lw=2.0)
plt.xticks(fontsize=13,rotation=30)
plt.xlabel(u'日期',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'价格',fontsize=13)
plt.legend(loc=0,fontsize=13)
plt.grid()plt.subplot(2,2,2)
plt.plot(SZ_Index['最高价'],'b-',label=u'深证成指最高价',lw=2.0)
plt.xticks(fontsize=13,rotation=30)
plt.xlabel(u'日期',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'价格',fontsize=13)
plt.legend(loc=0,fontsize=13)
plt.grid()plt.subplot(2,2,3)
plt.plot(SZ_Index['最低价'],'c-',label=u'深证成指最低价',lw=2.0)
plt.xticks(fontsize=13,rotation=30)
plt.xlabel(u'日期',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'价格',fontsize=13)
plt.legend(loc=0,fontsize=13)
plt.grid()plt.subplot(2,2,4)
plt.plot(SZ_Index['收盘价'],'k-',label=u'深证成指收盘价',lw=2.0)
plt.xticks(fontsize=13,rotation=30)
plt.xlabel(u'日期',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'价格',fontsize=13)
plt.legend(loc=0,fontsize=13)
plt.grid()plt.show()

在这里插入图片描述

堆叠直方图与并排直方图

SH_SZ_Index = pd.read_excel('data/上证综指和深证成指的日涨跌幅数据(2019-2020年).xlsx',sheet_name='Sheet1',header=0,index_col=0)
SH_SZ_Index # 显示行索引的格式

在这里插入图片描述

SH_SZ_Index = np.array(SH_SZ_Index) # 将数据框格式转换为数组格式
SH_SZ_Index

在这里插入图片描述

plt.figure(figsize=(9,6))
plt.hist(SH_SZ_Index,label=[u'上证综指日涨跌幅',u'深证成指日涨跌幅'],stacked=True,edgecolor='k',bins=30)
plt.xticks(fontsize=13)
plt.xlabel(u'日涨跌幅',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'频数',fontsize=13)
plt.title(u'上证综指和深证成指日涨跌幅堆叠直方图')
plt.legend
plt.grid()
plt.show()

在这里插入图片描述

plt.figure(figsize=(9,6))
plt.hist(SH_SZ_Index,label=[u'上证综指日涨跌幅',u'深证成指日涨跌幅'],edgecolor='k',bins=30)
plt.xticks(fontsize=13)
plt.xlabel(u'日涨跌幅',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'频数',fontsize=13)
plt.title(u'上证综指和深证成指日涨跌幅并排直方图')
plt.legend
plt.grid()
plt.show()

在这里插入图片描述

综合条形图与折线图的双轴图

M2 = pd.read_excel('data/我国广义货币供应量M2的数据(2019-2020年).xlsx',sheet_name='Sheet1',header=0,index_col=0)
M2 # 显示行索引的格式

在这里插入图片描述

fig, ax1 = plt.subplots(figsize=(9,6)) # 运用左侧纵坐标绘制图形
plt.bar(x=M2.index,height=M2.iloc[:,0],color='y',label=u'M2 每月余额')
plt.xticks(fontsize=13,rotation=90)
plt.xlabel(u'日期',fontsize=13)
plt.yticks(fontsize=13)
plt.ylim(0,250)
plt.ylabel(u'金额(万亿元)',fontsize=13)
plt.legend(loc=2,fontsize=13)ax2 = ax1.twinx()
plt.plot(M2.iloc[:,-1],lw=2.5)
plt.yticks(fontsize=13)
plt.ylim(0,0.13)
plt.ylabel(u'增长率',fontsize=13)
plt.title(u'广义货币供应量 M2 每月余额和每月同比增长率',fontsize=13)
plt.legend(loc=1,fontsize=13)
plt.grid()
plt.show()

在这里插入图片描述

散点图

ICBC_CCB = pd.read_excel('data/工商银行与建设银行A股周涨跌幅数据(2016-2020年).xlsx',sheet_name='Sheet1',header=0,index_col=0)
ICBC_CCB.describe()

在这里插入图片描述

ICBC_CCB.corr()

在这里插入图片描述

plt.figure(figsize=(9,6))
plt.scatter(x=ICBC_CCB['工商银行'],y=ICBC_CCB['建设银行'],c='r',marker='o')
plt.xticks(fontsize=13)
plt.xlabel(u'工商银行周涨跌幅',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel(u'建设银行周涨跌幅',fontsize=13)
plt.title(u'工商银行与建设银行周涨跌幅的散点图',fontsize=13)
plt.grid()
plt.show()

在这里插入图片描述

饼图

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

在这里插入图片描述

雷达图

company = ['中国人寿','中国人保','中国太保','中国平安','新华保险']
indicator=['营业收入增长率','净利润增长率','净资产收益率','偿付能力充足率']
ranking = np.array([5,4,3,2])
N_company=len(company)
N_indicator=len(indicator)ranking_new=np.concatenate([ranking, [ranking[0]]]) # 在中国太保各项指标排名的数组末尾增加一个该数组的首位数字,以实现绘图的闭合
angles = np.linspace(0, 2*np.pi, N_indicator, endpoint=False)
angles_new = np.concatenate([angles,[angles[0]]])plt.figure(figsize=(8,8))
plt.polar(angles_new,ranking_new,'--')
plt.thetagrids(angles*180/np.pi,indicator,fontsize=13)
plt.ylim(0,5)
plt.yticks(range(N_company+1),fontsize=13)
plt.fill(angles_new, ranking_new, facecolor='r',alpha=0.3)
plt.title(u'中国太保各项指标在 5 家A股上市保险公司中的排名',fontsize=13)
plt.show()

在这里插入图片描述

K 线图

import pandas as pd
import mplfinance as mpfSH_Index=pd.read_excel('data/2020年第3季度上证综指的日交易数据.xlsx', sheet_name="Sheet1", header=0,index_col=0)
SH_Index.index = pd.DatetimeIndex(SH_Index.index) # 数据框的行索引转换为 Datatime 格式SH_Index.columns # 显示列名

Index([‘开盘价’, ‘最高价’, ‘最低价’, ‘收盘价’, ‘成交额(万亿元)’], dtype=‘object’)

SH_Index=SH_Index.rename(columns={'开盘价':'Open','最高价':'High','最低价':'Low','收盘价':'Close','成交额(万亿元)':'Volume'})
mpf.plot(data=SH_Index,type='candle',mav=5,volume=True,figratio=(9,7),style='classic',ylabel='price',ylabel_lower='Volume(trillion)')

在这里插入图片描述

color=mpf.make_marketcolors(up='r',down='g')
style_color=mpf.make_mpf_style(marketcolors=color)
mpf.plot(data=SH_Index,type='candle',mav=(5,10),volume=True,figratio=(9,6),style=style_color,ylabel='price',ylabel_lower='Volume(trillion)')

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 搭建nginx https 反向代理 http tomcat服务实践。
  • 移动应用安全需求分析与安全保护工程
  • java内部类的本质
  • 计算器原生js
  • 第一章 深度学习和神经网络
  • sonar 8.9版本k8s安装部署
  • Jetpack Compose实现一个简单的微信UI
  • C/C++ 进阶(7)模拟实现map/set
  • 论文研读:ViT-V-Net—用于无监督3D医学图像配准的Vision Transformer
  • 《C++并发编程实战》笔记(一、二)
  • 抗量子密码算法:保障未来信息安全的新盾牌
  • 比赛获奖的武林秘籍:06 5 分钟速通比赛路演答辩,国奖选手的血泪经验!
  • 《JavaScript权威指南第7版》中文PDF+英文PDF+源代码 +JavaScript权威指南(第6版)(附源码)PDF下载阅读分享推荐
  • Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
  • 手机和电脑通过TCP传输
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【RocksDB】TransactionDB源码分析
  • iOS小技巧之UIImagePickerController实现头像选择
  • Linux链接文件
  • PHP 的 SAPI 是个什么东西
  • Python_OOP
  • python3 使用 asyncio 代替线程
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Redis的resp协议
  • Redux 中间件分析
  • spark本地环境的搭建到运行第一个spark程序
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • ------- 计算机网络基础
  • 计算机在识别图像时“看到”了什么?
  • 记一次用 NodeJs 实现模拟登录的思路
  • 日剧·日综资源集合(建议收藏)
  • 如何胜任知名企业的商业数据分析师?
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 正则表达式小结
  • 自动记录MySQL慢查询快照脚本
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​虚拟化系列介绍(十)
  • #define
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)scrum常见工具列表