打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用Python的pandas模块、mplfinance模块、matplotlib模块绘制K线图
目录
  • pandas模块、mplfinance模块和matplotlib模块介绍
    • pandas模块
    • mplfinance模块和matplotlib模块
  • 安装mplfinance模块、pandas模块和matplotlib模块
  • 处理股票数据
  • 设置图像大小
  • 加载K线图并设置格式
  • 完整代码

pandas模块、mplfinance模块和matplotlib模块介绍

pandas模块

pandas为解决数据分析任务而创建,纳入了大量的库和一些标准的数据模型,简而言之,它提供了很多数据处理的方法,此文就是借用它来生成DataFrame格式的数据。

mplfinance模块和matplotlib模块

mplfinance是专用于金融数据的可视化分析模块,是基于matplotlib的实用模块程序,而matplotlib模块是python绘图领域使用最广泛的套件。简而言之,python想使用可视化,就可以使用matplotlib,想在可视化里面绘制金融方面的图标,就可以使用mplfinance。

安装mplfinance模块、pandas模块和matplotlib模块

可以使用Python包管理也就是pip来进行安装,在cmd命令行中输入 pip install mplfinance后,系统将自动安装完成。如下图:



然后依次安装Pandas模块和matplotlib模块, pip install Pandas pip install matplotlib

当然,在模块安装过程中会因为网络问题导致失败,多次尝试后仍然失败,可以更换pip源为国内镜像。

处理股票数据

该文处理的数据为一个包含股票数据的json格式文件。由于我们要使用mplfinance.plot()函数绘制K线图,而该函数就只接收pandas.DataFrame格式的数据,所以需要将json格式文件数据转换为pandas.DataFrame格式数据。

  1. # k线图数据处理
  2. # 读取json文件,获取数据
  3. df = pd.read_json('AAPL.json', orient='index')
  4. # 删除无效数据数据
  5. for index, row in df.iterrows():
  6. if(isnot_float(row['Open'])):
  7. df.drop(index, inplace=True)
  8. # 调整数据顺序
  9. df = df.iloc[::-1]
  10. # 设置索引
  11. df.set_index(['Date'], inplace=True)
  12. # 将数据列转换为float,因为json字符串存在坏数据,所以读取的时候,所有列默认为字符串了。
  13. df = df.apply(pd.to_numeric, errors='ignore')

处理前的json数据格式如下图:



处理后的DataFrame数据格式:

设置图像大小

  1. # 绘图
  2. # 自定义一个10*8的画布
  3. fig = plt.figure(figsize=(12, 8))
  4. # 对画布划分,显示在1行*1列的第一块区域,其实也仅有一块区域
  5. ax = fig.add_subplot(1, 1, 1)

加载K线图并设置格式

  1. # 加载K线图
  2. mpf.plot(df, type='candle', ax=ax, style='binance', datetime_format='%Y-%m-%d')
  3. # 设置横轴值为时间格式
  4. ax.xaxis_date()
  5. # 通过tight_layout(),实现子图集铺满
  6. plt.tight_layout()
  7. # 显示
  8. plt.show()

完整代码

  1. import matplotlib.pyplot as plt
  2. import mplfinance as mpf
  3. import pandas as pd
  4. # 用来判断str能否转换为float,用于剔除无效数据
  5. def isnot_float(str):
  6. try:
  7. float(str)
  8. return False
  9. except ValueError:
  10. print(str)
  11. return True
  12. # k线图数据处理
  13. # 读取json文件,获取数据
  14. df = pd.read_json('AAPL.json', orient='index')
  15. # 删除无效数据数据
  16. for index, row in df.iterrows():
  17. if(isnot_float(row['Open'])):
  18. df.drop(index, inplace=True)
  19. # 调整数据顺序
  20. df = df.iloc[::-1]
  21. # 设置索引
  22. df.set_index(['Date'], inplace=True)
  23. # 将数据列转换为float,因为json字符串存在坏数据,所以读取的时候,所有列默认为字符串了。
  24. df = df.apply(pd.to_numeric, errors='ignore')
  25. # 绘图
  26. # 自定义一个10*8的画布
  27. fig = plt.figure(figsize=(12, 8))
  28. # 对画布划分,显示在1行*1列的第一个子图集,其实也仅有一个子图集
  29. ax = fig.add_subplot(1, 1, 1)
  30. # 加载K线图
  31. mpf.plot(df, type='candle', ax=ax, style='binance', datetime_format='%Y-%m-%d')
  32. # 设置横轴值为时间格式
  33. ax.xaxis_date()
  34. # 通过tight_layout(),实现子图集铺满
  35. plt.tight_layout()
  36. # 显示
  37. plt.show()

使用Python的pandas模块、mplfinance模块、matplotlib模块绘制K线图的更多相关文章

  1. python pandas 画图、显示中文、股票K线图

    目录: 1.pandas官方画图链接 2.标记图中数据点 3.画图显示中文 4.画股票K线图 5.matplotlib基本用法 6.format输出 6.format输出例子 eps_range=[0 ...

  2. 小白学Python(14)——pyecharts 绘制K线图 Kline/Candlestick

    Kline-基本示例 from pyecharts import options as opts from pyecharts.charts import Kline data = [ [2320.2 ...

  3. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)

    最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...

  4. windows下python安装Numpy、Scipy、matplotlib模块(转载)

    python下载链接     Numpy下载链接 python中Numpy包的安装及使用 Numpy包的安装 准备工作 Python安装 pip安装 将pip所在的文件夹添加到环境变量path路径中 ...

  5. [python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上

    将沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上 原理:python读取前一次处理完的计算5日后涨跌幅输出的csv文件 文件名前加"[paint]" 安照通达信的画图文件和板 ...

  6. Windows python 安装 nNumpy、Scipy、matplotlib模块

    折腾了 很久,总结一些. 首先如果python 是64位,安装32位的numpy ,Scipy,或者matplotlib 模块. 会出现很多问题. 比如当你 在python 导入 Numpy 时,导入 ...

  7. pandas 生成并排放置的条形图和箱线图

    1.代码 import numpy as np import pandas as pd import matplotlib.pyplot as plt # 生成数据,创建 DataFrame np.r ...

  8. windows下python安装Numpy、Scipy、matplotlib模块

    来源http://blog.csdn.net/Katrina_ALi/article/details/64922107 http://blog.csdn.net/qq_16633405/article ...

  9. 【Python】模块学习之matplotlib柱状图、饼状图、动态图及解决中文显示问题

    前言 众所周知,通过数据绘图,我们可以将枯燥的数字转换成容易被人们接受的图表,从而让人留下更加深刻的印象.而大多数编程语言都有自己的绘图工具,matplotlib就是基于Python的绘图工具包,使用 ...

随机推荐

  1. Xamarin.Android快速入门

    一.准备工作 1.创建一个空的解决方案,并命名为Phoneword 2.右击解决方案 新建->新建项目 并命名为Phoneword_Droid 二.界面 1.打开Resources文件夹-> ...

  2. ASP.NET MVC Model元数据(二)

    ASP.NET MVC Model元数据(二) 前言 在上篇中,给大家留个对Model元数据的印象,并没有对Model元数据有过多的讲解,而在本篇中也不会对Model元数据的本身来解释,而是针对于它的 ...

  3. Scalaz(4)- typeclass:标准类型-Equal,Order,Show,Enum

    Scalaz是由一堆的typeclass组成.每一个typeclass具备自己特殊的功能.用户可以通过随意多态(ad-hoc polymorphism)把这些功能施用在自己定义的类型上.scala这个 ...

  4. ACM: NBUT 1646 Internet of Lights and Switches - 二进制+map+vector

    NBUT 1646 Internet of Lights and Switches Time Limit:5000MS     Memory Limit:65535KB     64bit IO Fo ...

  5. Openblas编译Android NDK库的步骤

    1.配置Android NDK编译工具.以下下载地址,直接放到浏览器中下载,不需要VPNlinux 32 bithttp://dl.google.com/android/ndk/android-ndk ...

  6. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](一)

    前言 大家好,我是Rector 从今天开始,Rector将为大家推出一个关于创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar]的文章系列, ...

  7. 【XSY3154】入门多项式 高斯消元

    题目大意 给你一个 \(n\times n\)的矩阵 \(A\),求次数最小且最高次项为 \(1\) 的多项式 \(F(x)\),满足 \(F(A)=0\). 所有操作都对 \(p\) 取模. \(n ...

  8. 用VS2015编译pjsip的工程pjproject-vs14

    先去官网下载最新的源码包,我用的版本是2.7.1 . 将源代码解压后,在路径:pjproject-3.7.1\pjlib\include\pj 中创建新文件config_site.h,内容如下: #i ...

  9. nodejs 函数 :html2js

    var fs = require("fs"); var path = require("path"); function propStringToMap(ss1 ...

  10. mybatis进阶--输入映射和输出映射

    我们知道,mapper.xml是我们配置操作数据库的sql语句的地方.其中每个sql语句对应着一个方法,每个方法都有自己的输入输出参数类型.那么这些类型都是怎么配置的呢?今天我们来一起学习下. 输入映 ...

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【Python数据可视化】教你如何使用Python绘制K线图
新mplfinance模块详解(一)
python stock数据包tushare例子
Python的利器Pandas库:超级简单的数据可视化作图,你知道吗?
用这个库,轻松绘制股票K线图
教你一招:在Python中使用CSV、JSON和XML的简便方法!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服