IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 绘制K线图-实战演练(python) -> 正文阅读

[开发工具]绘制K线图-实战演练(python)

本文实战演练了K线图绘制,爬取实际股票数据,并绘制K线图。

1.数据爬取

使用tushare包的无token(账户码)模式数据爬取,因为本文画K线图不涉及很细节的数据,用最简单的数据就行,至于更详细的数据,可能需要去tushare官网注册后使用token。

import tushare as ts #用于爬取股票数据
data=ts.get_k_data('000001', #以平安银行股票为例
                   start="2021-01-01",end="2021-09-01") #设置爬取的起止时间
data.to_excel('D:/CSDN/绘制K线图-实战演练/data1.xlsx') #把数据存到电脑Excel

2.数据整理

数据爬取之后,要依据mplfinance包的三条数据要求(数据列、日期索引、日期格式)整理好数据。(整理过程理解可参考笔者写的K线图绘制基础篇) ?

import pandas as pd #用于数据处理
Data=pd.read_excel('D:/CSDN/绘制K线图-实战演练/data1.xlsx') #读取Excel数据
Data=Data[['date','open','high','low','close','volume']] #重新编排数据的列,以适应mplfinance画图数据要求
Data.set_index('date',  # 把数据中的date作为行索引,以适应mplfinance画图数据要求
               inplace=True)  # date索引从数据内部引用
Data.index=pd.DatetimeIndex(Data.index) #把日期索引转为时间序列格式,也是mplfinance画图数据要求

3.绘制K线图

载入需要的包matplotlib.pyplot、matplotlib、cycler来配合mplfinance绘制K线图。

import mplfinance as mpf #用于画K线图
import matplotlib.pyplot as plt #用于展示图像
import matplotlib as mpl #用于画均线
from cycler import cycler #用于设置均线颜色
kwargs=dict( #设置图像整体框架
    type='candle', #选择画K线图
    mav=(7,30,60), #选择均线类型为三种日线
    volume=True, #设置显示成交量图
    title='PING AN BANK 2021.1-2021.8', #设置图像标题
    ylabel='OHLC candles', #设置纵轴标题
    ylabel_lower='volume', #设置成交量图纵轴标题
    figratio=(20,15), #设置图像纵横比
    figscale=5) #设置图像尺寸
mc = mpf.make_marketcolors( #设置图像整体颜色
    up='red', #设置涨的颜色为红色
    down='green', #设置跌的颜色为绿色
    edge='i', #蜡烛边缘颜色继承up和down的颜色
    wick='i', #蜡烛芯颜色继承up和down的颜色
    volume='in', #成交量图颜色继承up和down的颜色
    inherit=True) #确定继承
s=mpf.make_mpf_style( #设置网格线风格
    gridaxis='both', #设置网格线位置
    gridstyle='--', #设置网格线类型
    y_on_right=False, #设置y轴位置在左
    marketcolors=mc) #使用上面mc设置的颜色
mpl.rcParams['axes.prop_cycle']=cycler( #设置均线颜色
    color=['dodgerblue','deeppink','navy','teal','maroon','darkorange','indigo']) #配色可以查配色板,搜一下就有了
mpf.plot(Data, #使用已经爬取并整理好的数据
         **kwargs, #使用上面设置的图像整体框架
         style=s, #使用上面设置的网格线风格
         show_nontrading=False) #不显示非交易日
plt.show()  #展示图像

?完整代码:

import tushare as ts #用于爬取股票数据
data=ts.get_k_data('000001', #以平安银行股票为例
                   start="2021-01-01",end="2021-09-01") #设置爬取的起止时间
data.to_excel('D:/CSDN/绘制K线图-实战演练/data1.xlsx') #把数据存到电脑Excel
import pandas as pd #用于数据处理
Data=pd.read_excel('D:/CSDN/绘制K线图-实战演练/data1.xlsx') #读取Excel数据
Data=Data[['date','open','high','low','close','volume']] #重新编排数据的列,以适应mplfinance画图数据要求
Data.set_index('date',  # 把数据中的date作为行索引,以适应mplfinance画图数据要求
               inplace=True)  # date索引从数据内部引用
Data.index=pd.DatetimeIndex(Data.index) #把日期索引转为时间序列格式,也是mplfinance画图数据要求
import mplfinance as mpf #用于画K线图
import matplotlib.pyplot as plt #用于展示图像
import matplotlib as mpl #用于画均线
from cycler import cycler #用于设置均线颜色
kwargs=dict( #设置图像整体框架
    type='candle', #选择画K线图
    mav=(7,30,60), #选择均线类型为三种日线
    volume=True, #设置显示成交量图
    title='PING AN BANK 2021.1-2021.8', #设置图像标题
    ylabel='OHLC candles', #设置纵轴标题
    ylabel_lower='volume', #设置成交量图纵轴标题
    figratio=(20,15), #设置图像纵横比
    figscale=5) #设置图像尺寸
mc = mpf.make_marketcolors( #设置图像整体颜色
    up='red', #设置涨的颜色为红色
    down='green', #设置跌的颜色为绿色
    edge='i', #蜡烛边缘颜色继承up和down的颜色
    wick='i', #蜡烛芯颜色继承up和down的颜色
    volume='in', #成交量图颜色继承up和down的颜色
    inherit=True) #确定继承
s=mpf.make_mpf_style( #设置网格线风格
    gridaxis='both', #设置网格线位置
    gridstyle='--', #设置网格线类型
    y_on_right=False, #设置y轴位置在左
    marketcolors=mc) #使用上面mc设置的颜色
mpl.rcParams['axes.prop_cycle']=cycler( #设置均线颜色
    color=['dodgerblue','deeppink','navy','teal','maroon','darkorange','indigo']) #配色可以查配色板,搜一下就有了
mpf.plot(Data, #使用已经爬取并整理好的数据
         **kwargs, #使用上面设置的图像整体框架
         style=s, #使用上面设置的网格线风格
         show_nontrading=False) #不显示非交易日
plt.show() #展示图像

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-06 11:21:26  更:2021-09-06 11:21:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:46:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码