Python量化的关键是金融数据可视化,不管是传统的K线图,仍是如今的策略分析,都须要大量的可视化图表。具体到编程代码,就是使用Python绘图模块库绘图,好比传统的Python绘图模块库有Matplotlib,Seaborn等。

html

对于股票和财经的金融数据源,能够使用Tushare库来获取和分析股票财经数据,咱们得到财经数据源后,就能够使用Pandas对金融数据的各类指标进行定制化的分析了,最后让数据可视化,能够使用Matplotlib来绘制出美观大方的金融图形,为企业的决策提供便利。金融绘图的主要步骤以下:nginx

得到股票数据源编程

Tushare是一个免费、开源的Python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程,可以为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工做量,使他们更加专一于策略和模型的研究与实现上。考虑到Python 的Pandas包在金融量化分析中体现出的优点,Tushare返回的绝大部分的数据格式都是Pandas的 DataFrame类型,很是便于用Pandas,NumPy和Matplotlib进行数据分析和可视化。微信

Tushare的官网地址网络

http://tushare.org

在Tushare中使用的股票代码,能够参考东方财富网提供的股票代码查询页面,如图7-63所示app

http://quote.eastmoney.com/stocklist.html

图763股票代码查询页面机器学习

使用pip安装Tushare。安装Tushare以前,须要使用pip命令先安装好lxml,requests和bs4模块。函数

pip install tushare

显示股票历史数据学习

TuShare里的 get_hist_data()函数用于获取到目前为止3年的历史数据。获取个股历史交易数据(包括均线数据),能够经过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析。ui

参数说明:

code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板)

start:开始日期,格式YYYY-MM-DD

end:结束日期,格式YYYY-MM-DD

ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D

retry_count:当网络异常后重试次数,默认为3

pause:重试时停顿秒数,默认为0

返回值说明:

date:日期

open:开盘价

high:最高价

close:收盘价

low:最低价

volume:成交量

price_change:价格变更

p_change:涨跌幅

ma5:5日均价

ma10:10日均价

ma20:20日均价

v_ma5:5日均量

v_ma10:10日均量

v_ma20:20日均量

turnover:换手率[注:指数无此项]

查看编号为600848的股票代码在2018年3月的历史数据,使用Tushare的get_hist_data()返回的是Pandas的DataFrame对象,这个DataFrame对象的columns比较多,在控制台显示不全,因此使用Pandas的to_csv()函数保存到hist_data.csv文件中。

import tushare as tsdata = ts.get_hist_data('600848',start='2018-03-01',end='2018-03-31')data.to_csv('hist_data.csv' )

运行脚本,已记事本打开hist_data.csv文件。

咱们查看hist_data.csv文件会发现,编号为600848的股票代码在2018年3月的历史交易数据是按照交易日期降序排列的。但展现在折线图上的的日期通常要按升序排列。因此还要对DataFrame对象的index属性进行排序。使用Pandas的DataFrame对象的sort_index()函数,使交易日期按照从小到到大的升序排列。这样画出的折线图就符合人们查看历史交易数据的正常习惯了,完整代码以下。

import tushare as tsdata = ts.get_hist_data('600848',start='2018-03-01',end='2018-03-31')# 对交易时间进行降序排列data = data.sort_index()data.to_csv('hist_data.csv' )

得到编号为600848的股票代码在2018年3月的历史交易数据后,就能够使用Maplotlib画出股票历史数据的折线图,折线图的横坐标是股票历史数据的交易日期,纵坐标是股票交易数据的开盘价(open)。

import tushare as tsimport matplotlib.pyplot as pltfrom datetime import datetimedata = ts.get_hist_data('600848',start='2018-03-01',end='2018-03-31')# 对时间进行降序排列data = data.sort_index()xs = [datetime.strptime(d, '%Y-%m-%d').toordinal() for d in data.index ]plt.plot_date( xs , data['open'] , 'b-')plt.gcf().autofmt_xdate()  # 自动旋转日期标记plt.show()

运行脚本输出如下图形。

以上代码的核心代码以下,使用Tushare的get_hist_data()函数返回股票交易代码的股票历史数据,也就是Pandas的DataFrame对象data,data.index索引值是日期型字符串,使用Matplotlib的plot_date()画图函数,须要转换成函数能够识别的Gregoian Calendar类型数据。

xs = [datetime.strptime(d, '%Y-%m-%d').toordinal() for d in data.index ]

以上表达式语句等同于如下语句。

xs = []for date in data.index:    print( date )    transDate = datetime.strptime( date , '%Y-%m-%d')    xs.append( transDate.toordinal())

绘制折线图的X 轴的日期也能够使用matplotlib.dates.strpdate2num()函数进行转换,完整代码以下。

import tushare as tsimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesdata = ts.get_hist_data('600848',start='2018-03-01',end='2018-03-31')# 对时间进行降序排列data = data.sort_index()xs = [mdates.strpdate2num('%Y-%m-%d')(d ) for d in data.index ]plt.plot_date( xs , data['open'] , 'b-')plt.gcf().autofmt_xdate()  # 自动旋转日期标记plt.show()

运行脚本输出如下图形。

获取60分钟k线数据。

import tushare as tsimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesdata = ts.get_hist_data('600848', ktype='60')xs = [mdates.strpdate2num('%Y-%m-%d %H:%M:%S')(d ) for d in data.index ]#设置时间标签显示格式ax = plt.gca()ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M:%S'))plt.plot_date(xs, data['open'],'-' , label='open')plt.legend(loc=0  )plt.gcf().autofmt_xdate()plt.show()

运行脚本输出如下图形。

图768编号为600848的股票代码的60分钟内的k线图

留言回复你用Python作过哪些有趣的应用,咱们会在留言中随机抽取一位读者免费送出北京大学出版社出版的《Python 3 数据分析与机器学习实战》图书一本。

热 门 推 荐

用Python建立微信机器人

用Python机器人监听微信群聊

用Python获取摄像头并实时控制人脸

开源项目 | 用Python美化LeetCode仓库

推荐Python中文社区旗下的几个服务类公众号

征稿启事 | Python中文社区有奖征文

文章节选自北京大学出版社出版的《Python 3 数据分析与机器学习实战》,本书如今5折优惠,点击阅读原文购书~

python 金融可视化_用 Python 进行金融数据可视化相关推荐

  1. 基于plotly数据可视化_如何使用Plotly进行数据可视化

    基于plotly数据可视化 The amount of data in the world is growing every second. From sending a text to clicki ...

  2. python 3d大数据可视化软件_十大顶级大数据可视化工具推荐

    要使数据分析真正有价值和有洞察力,就需要高质量的可视化工具.市场上有很多产品,特点和价格各不相同,本文列出了一些广泛认可的工具.其实企业如何选择一个合适的可视化工具,并不是一件容易的事情,需要仔细的考 ...

  3. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  4. 不会python怎么了?靠敏捷BI和数据可视化,照样去阿里腾讯

    某段求职经历让我切切实实的感受到了大环境的不友好,可以说是相当不友好:当过大公司的数据Team Leader,工作中受到过大老板的高度赞扬,自认为经历背景都不错,于是从舒适圈辞职. 休息了一段时间后开 ...

  5. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  6. Python计算美国总统的身高并实现数据可视化

    Python计算美国总统的身高并实现数据可视化 代码如下: import numpy as np import pandas as pd import matplotlib.pyplot as plt ...

  7. Python+Flask实现全国、全球疫情大数据可视化(二):网页页面布局+echarts可视化中国地图、世界地图、柱状图和折线图

    文章目录 相关文章 一.实现效果 二.页面布局html+css main.html main.css 三.echarts图表制作 1.全国累计趋势折线图ec_l1.js 2.全国趋势变化折线图ec_l ...

  8. python爬取b站弹幕并进行数据可视化

    python爬取b站弹幕并进行数据可视化 1.第一步,爬取b站弹幕 我们随便打开一个b站视频 打开开发者模式,在network下搜索list,可以找到该视频的弹幕文件 打开之后是这个样子的 结构还是比 ...

  9. python数据分析之连接MySQL数据库并进行数据可视化

    大家好,我是带我去滑雪! 本期将熟悉MySQL数据库以及管理和操作MySQL数据库的数据库管理工具Navicat Premium,然后在python中调用MySQL数据库进行数据分析和数据可视化. 目 ...

  10. 手把手教你学Python之Matplotlib绘图(一文掌握数据可视化库-Matplotlib)

    目录 Matplotlib介绍 线形图(折线图) 直方图 条形图 饼状图 散点图 Matplotlib介绍        matplotlib是一个Python 的2D绘图库,提供了一套表示和操作图以 ...

最新文章

  1. cordova media android不播放声音,cordova-plugin-media 录音并打包上传
  2. 开发日记-20190902 关键词 读书笔记《Unix环境高级编程(第二版)》DAY 7
  3. Python3网络爬虫——(4)urllib.error异常处理
  4. 12月9日 perform使用入门
  5. warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.
  6. (转)Spring Boot 2(一):【重磅】Spring Boot 2.0权威发布
  7. zed相机拆机_TX2入门教程硬件篇-外接双目相机ZED
  8. oracle mysql安装图解 linux_Linux上Oracle 11g安装步骤图文详解
  9. toast弹窗_弹窗功能解析amp;设计指南 | 为弹窗正名
  10. c语言编写记账程序,C语言会计记账管理系统
  11. wps 宏 禁用_WPS宏被禁用如何打开
  12. CNNIC发布第39次《中国互联网络发展状况统计报告》
  13. CentOS7 快速搭建VNC Server 实现服务器远程控制台访问(Java Viewer)
  14. 教学小结:我这样帮助学生提出疑问
  15. 小白也能看懂的手机配置攻略
  16. 沐阳Git笔记04查看版本演变历史
  17. unity gizmo在游戏中绘制_world machine中文版下载_三维游戏地形软件pc版免费下载3.3026...
  18. hdu 1205 吃糖果 抽屉原理
  19. 微信小程序界面设计入门课程-样式wxss中使用css课程-文本-direction 文本方向
  20. 将String字符串转化为int

热门文章

  1. 项目:NMEA2000的数据格式解析
  2. Linux的基础知识——mmap父子通信进程和匿名通信
  3. 计算机网络物理层-编码技术实现
  4. oracle的删除的row如何,Oracle 删除大表中部分数据
  5. python获取mac窗口坐标_[代码全屏查看]-Python3根据IP地址获取MAC地址
  6. C++ vector的反向迭代器
  7. 重装谷歌浏览器chrome:未知错误导致安装失败
  8. OpenCV的数据类型——基础数据类型
  9. python---aiohttp库
  10. Java8 Stream详解~ 提取/组合