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格式数据。

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

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



处理后的DataFrame数据格式:

设置图像大小

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

加载K线图并设置格式

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

完整代码

import matplotlib.pyplot as plt
import mplfinance as mpf
import pandas as pd # 用来判断str能否转换为float,用于剔除无效数据
def isnot_float(str):
try:
float(str)
return False
except ValueError:
print(str)
return True # k线图数据处理
# 读取json文件,获取数据
df = pd.read_json('AAPL.json', orient='index') # 删除无效数据数据
for index, row in df.iterrows():
if(isnot_float(row['Open'])):
df.drop(index, inplace=True) # 调整数据顺序
df = df.iloc[::-1] # 设置索引
df.set_index(['Date'], inplace=True)
# 将数据列转换为float,因为json字符串存在坏数据,所以读取的时候,所有列默认为字符串了。
df = df.apply(pd.to_numeric, errors='ignore') # 绘图
# 自定义一个10*8的画布
fig = plt.figure(figsize=(12, 8))
# 对画布划分,显示在1行*1列的第一个子图集,其实也仅有一个子图集
ax = fig.add_subplot(1, 1, 1) # 加载K线图
mpf.plot(df, type='candle', ax=ax, style='binance', datetime_format='%Y-%m-%d')
# 设置横轴值为时间格式
ax.xaxis_date()
# 通过tight_layout(),实现子图集铺满
plt.tight_layout()
# 显示
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. SecureCRT的下载、安装和Putty 的使用 SSH连接工具

    SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件.SecureCRT支持SSH,同时支持Telnet和rlog ...

  2. 从数据库将数据导出到excel表格

    public class JxlExcel { public static void main(String[] args) { //创建Excel文件 String[] title= {" ...

  3. svn怎么上传文件

    首先去网站下载TortoiseSVN,并安装   安装完后随便打开一个文件夹,如图,笔者在 E:\svn\ 文件下创建了一个simbo文件夹,选中并右键,出现了TortoiseSVN应用的选项,我们点 ...

  4. Maven中使用JSTL

    在pom.xml文件下面增加如下的依赖包: <dependency> <groupId>jstl</groupId> <artifactId>jstl& ...

  5. [leetcode]118,119PascalsTriangle,杨辉三角1,2

    杨辉三角1Given numRows, generate the first numRows of Pascal's triangle.For example, given numRows = 5,R ...

  6. 【WPF】 问题总结-RaidButton修改样式模板后作用区域的变化

    最近工作需要,需要重绘RaidButton控件,具体想要达成的的效果是这样的: 当点击按钮任意一个地方的时候,按钮的背景改变. 于是我是这样对控件模板进行修改的: <Style x:Key=&q ...

  7. Linux性能优化:CPU性能分析工具--vmstat

    Blog:博客园 个人 目录 参数说明 输出信息说明 procs memory swap io system cpu 示例 vmstat是Virtual Meomory Statistics(虚拟内存 ...

  8. java内置锁实现锁住代码块方案(同一个对象或锁住整个类.class)

    我们看一个例子: class Demo { public synchronized void test() { System.out.println("test方法开始执行,当前线程为:&q ...

  9. 第十五章节 BJROBOT cartographer 算法构建地图【ROS全开源阿克曼转向智能网联无人驾驶车】

    建地图前说明:请确保你的小车已经校正好 IMU.角速度.线速度,虚拟机配置好 ROS 网络的前提进行,否则会造成构建地图无边界.虚拟机端无法正常收到小车主控端发布的话题数据等异常情况!! 1.把小车平 ...

  10. 9条消除if...else的锦囊妙计,助你写出更优雅的代码

    前言 最近在做代码重构,发现了很多代码的烂味道.其他的不多说,今天主要说说那些又臭又长的if...else要如何重构. 在介绍更更优雅的编程之前,让我们一起回顾一下,不好的if...else代码 一. ...