调用Tushare数据库绘制K线图
(一)获取股票的日线数据
(1) 导入需要的包
# 绘制k线图
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import datetime
import numpy as np
import mplfinance as mpf
from matplotlib.pylab import date2num
from mpl_finance import candlestick_ochl
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
注意:这里可能会存在的中文在绘制图像时无法显示的问题,这里需要添加两行代码
(2)导入源数据
使用tushare数据接口得到历史行情数据并将其赋值为data,查看一下数据情况。
import tushare as ts#初始化
token = "你的token"
pro = ts.pro_api(token)# 调用行情数据
data = pro.daily(ts_code = '000001.SZ')
data
ts_code | trade_date | open | high | low | close | pre_close | change | pct_chg | vol | amount | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 000001.SZ | 20220520 | 14.70 | 15.04 | 14.67 | 15.02 | 14.62 | 0.40 | 2.7360 | 948597.78 | 1.415165e+06 |
1 | 000001.SZ | 20220519 | 14.55 | 14.70 | 14.50 | 14.62 | 14.75 | -0.13 | -0.8814 | 590921.72 | 8.632141e+05 |
2 | 000001.SZ | 20220518 | 14.85 | 14.89 | 14.67 | 14.75 | 14.71 | 0.04 | 0.2719 | 778578.33 | 1.150500e+06 |
3 | 000001.SZ | 20220517 | 14.51 | 14.72 | 14.32 | 14.71 | 14.41 | 0.30 | 2.0819 | 931406.39 | 1.357428e+06 |
4 | 000001.SZ | 20220516 | 14.66 | 14.73 | 14.35 | 14.41 | 14.61 | -0.20 | -1.3689 | 668227.82 | 9.656523e+05 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
4995 | 000001.SZ | 20010221 | 14.25 | 14.25 | 13.95 | 14.00 | 14.27 | -0.27 | -1.8900 | 36539.27 | 5.127413e+04 |
4996 | 000001.SZ | 20010220 | 14.45 | 14.56 | 14.20 | 14.27 | 14.49 | -0.22 | -1.5200 | 15961.91 | 2.297261e+04 |
4997 | 000001.SZ | 20010219 | 14.18 | 14.50 | 14.12 | 14.49 | 14.19 | 0.30 | 2.1100 | 15319.43 | 2.185724e+04 |
4998 | 000001.SZ | 20010216 | 14.16 | 14.20 | 14.05 | 14.19 | 14.15 | 0.04 | 0.2800 | 16732.14 | 2.364114e+04 |
4999 | 000001.SZ | 20010215 | 14.28 | 14.35 | 14.14 | 14.15 | 14.21 | -0.06 | -0.4200 | 13692.19 | 1.945717e+04 |
可以看到数据从2001年2月份到2022年最新的数据,包括了以下列表中的若干数据。
ts_code | str | 股票代码 |
trade_date | str | 交易日期 |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
close | float | 收盘价 |
pre_close | float | 昨收价 |
change | float | 涨跌额 |
pct_chg | float | 涨跌幅 (未复权,如果是复权请用 通用行情接口 ) |
vol | float | 成交量 (手) |
amount | float | 成交额 (千元) |
(2)得到待处理数据
绘制k线需要用到的数据列是'trade_date','open','close','high','low','vol'这些,使用下面的代码得到我们需要的数据dataframe
data=data[['trade_date','open','close','high','low','vol']][:]
(二)数据前处理
(1)处理date数据
由于绘制图像的时候需要把日期数据转换为candlestick_ochl()函数可读取的格式,使用下面的代码
data.trade_date=pd.to_datetime(data.trade_date)
#将date转化为特定的时间戳数据
data.trade_date=data.trade_date.apply(lambda x:date2num(x))
data
可以看到处理完成后交易日期的数据类型已经不是常见的日期形式了
trade_date | open | close | high | low | vol | |
---|---|---|---|---|---|---|
0 | 20220520 | 14.70 | 15.02 | 15.04 | 14.67 | 948597.78 |
1 | 20220519 | 14.55 | 14.62 | 14.70 | 14.50 | 590921.72 |
2 | 20220518 | 14.85 | 14.75 | 14.89 | 14.67 | 778578.33 |
3 | 20220517 | 14.51 | 14.71 | 14.72 | 14.32 | 931406.39 |
4 | 20220516 | 14.66 | 14.41 | 14.73 | 14.35 | 668227.82 |
... | ... | ... | ... | ... | ... | ... |
4995 | 20010221 | 14.25 | 14.00 | 14.25 | 13.95 | 36539.27 |
4996 | 20010220 | 14.45 | 14.27 | 14.56 | 14.20 | 15961.91 |
4997 | 20010219 | 14.18 | 14.49 | 14.50 | 14.12 | 15319.43 |
4998 | 20010216 | 14.16 | 14.19 | 14.20 | 14.05 | 16732.14 |
4999 | 20010215 | 14.28 | 14.15 | 14.35 | 14.14 | 13692.19 |
(2)将数量类型变为matrix
最后把data数据转换为matrix就完成了数据的前期处理,由于版本的改变,现在dataframe中转变matrix的函数变为了values 而不是to_matrix,这里需要注意。
#将 DataFrame 转为 matrix格式
data_mat = data.values[:,:]
(三)绘制K线图
最后就是愉快的绘图环节了
#绘制图片
fig,ax=plt.subplots(figsize=(1200/72,480/72))
fig.subplots_adjust(bottom=0.1)candlestick_ochl(ax,data_mat,colordown='#53c156', colorup='#ff1717',width=0.3,alpha=1)
ax.grid(True)
ax.xaxis_date()
ax.set_title("K线图-000001.SZ")
plt.show()
完整代码
# 绘制k线图
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import datetime
import numpy as np
import mplfinance as mpf
from matplotlib.pylab import date2num
from mpl_finance import candlestick_ochl
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)import tushare as ts# 初始化
token = "你的token"
pro = ts.pro_api(token)data = pro.daily(ts_code='000001.SZ')data=data[['trade_date','open','close','high','low','vol']][:]data.trade_date=pd.to_datetime(data.trade_date)
#将date转化为特定的时间戳数据
data.trade_date=data.trade_date.apply(lambda x:date2num(x))#将 DataFrame 转为 matrix格式
data_mat = data.values[:,:]#绘制图片
fig,ax=plt.subplots(figsize=(1200/72,480/72))
fig.subplots_adjust(bottom=0.1)candlestick_ochl(ax,data_mat,colordown='#53c156', colorup='#ff1717',width=0.3,alpha=1)
ax.grid(True)
ax.xaxis_date()
ax.set_title("K线图-000001.SZ")
plt.show()
调用Tushare数据库绘制K线图相关推荐
- java编写k线_用Java绘制K线图
[IT168技术文档] Java语言中的Applet(Java小程序)和Application(Java应用程序)是在结构和功能上都存在很大差异的两种不同的编程方式.Applet应用于Web页上,可做 ...
- python通过新 mplfinance 模块绘制 k 线图
python通过新 mplfinance 模块绘制 k 线图 最近绘制 k 线图发现mplfinance从matplotlib中独立出来了,作为一个单独的模块,并且可以直接使用Pandas 的Data ...
- java k线绘制,用Java绘制K线图[Java编程]
赞助商链接 本文"用Java绘制K线图[Java编程]"是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具 ...
- python画k线图_Python绘制K线图
不管是对量化分析师还是普通的投资者来说,K线图(蜡烛图)都是一种很经典.很重要的工具.在K线图中,它会绘制每天的最高价.最低价.开盘价和收盘价,这对于我们理解股票的趋势以及每天的多空对比很有帮助. 一 ...
- python 股票图表_k线图分析法_【趣味案例】用Python绘制K线图,一眼看清股市状况...
本文介绍关于[趣味案例]用Python绘制K线图,一眼看清股市状况及神一般的裸k交易法,精髓就这三步,一目了然!精髓就这三步,一目了然!(附图解析)的相关内容. [趣味案例]用Python绘制K线图, ...
- python能画k线图吗_k线图怎么画?_Python绘制K线图
本文介绍关于Python绘制K线图与股票中怎样才能画出有效的趋势线.压力和支撑位?与手工绘制股票K线图有什么技巧,要先从哪学起?与外汇怎样绘制蜡烛图?与k线图怎么变宽了,怎么复原?与怎样判断K线点位高 ...
- 利用tushare画股票K线图
文章目录 前言 一.tushare是什么? 二.使用步骤 1.引入库 2.设置自己的接口 3.获取数据 总结 前言 tushre ID :489992 关于财经数据,有多个Python库可以供咱们选择 ...
- python 窗体k线图_一眼看清股市状况之用Python绘制K线图
前几天美股熔断,据悉这次熔断是自美股有熔断机制30年来第二次,成了头条新闻.对股票一窍不通的我也在此情此景进行了一波学习,股市的变化瞬息万千,有一种图可以用来清晰地反应一段时间内股市的变化情况,它就是 ...
- python k线图和指标_期货k线图基础知识_一眼看清股市状况之用Python绘制K线图
本文介绍关于一眼看清股市状况之用Python绘制K线图与cdp指标与期货大盘的分析周期选用有关吗?应该选用日线,还是60分钟.30分钟等时分线最为精确.与股票指标ovl是什么意思与股票均线怎么看与我想 ...
最新文章
- NCHW与NHWC格式
- 挖洞技巧:信息泄露之总结
- python json.dumps慢_python json.dumps中文乱码问题解决
- 数据挖掘:大数据发展的核心驱动力
- 服务器多个网站开启quarz,GitHub - WuLex/QuartzSynchroData: 多个不同站点服务器数据同步到总服务器(数据中心)...
- Python类和对象的入门级讲解(简单粗暴)
- Storm sql 简单测试
- openstack虚拟机迁移live-migration中libvirt配置
- linux正则表达式_Linux 中几个正则表达式的用法
- LiveGBS国标获取接入海康大华宇视摄像机设备通道的视频流直播地址 HLS/HTTP-FLV/WS-FLV/WebRTC/RTMP/RTSP
- c#WPF 扫雷游戏
- 编译原理生成中间代码(flex和bison版)
- sketchup 草图 大师 使用笔记
- esp8266应用教程——TFT LCD显示
- Windows 下 Apple Mobile Device Support 安装失败导致 iTunes 无法连接分析和解决方案
- JVM 知识体系总结
- 用html制作静态音乐欣赏,【HTML】简单的静态音乐网页设计
- 解决Vue中的对象属性无法实现动态响应
- c8网络语言意思,老外常用的网络英文缩写
- ResNet网络详解