用时间序列数据画蜡烛图

news2024/9/25 21:27:45

数据集:时间序列数据集(2024.8.16收集)-修改date资源-CSDN文库

示例一

import pandas as pd
import mplfinance as mpf

# 读取CSV文件
df = pd.read_csv('999999_dcolhchg.csv')

# 将日期列加上19000000,然后转换为日期格式
df['date'] = pd.to_datetime(df['date'] + 19000000, format='%Y%m%d')

# 设置日期列为索引
df.set_index('date', inplace=True)

# 确保列名与mplfinance的要求一致
df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close'}, inplace=True)

# 绘制蜡烛图
mpf.plot(df, type='candle', style='charles', title='Candlestick Chart', ylabel='Price')

代码解释:
1. 导入必要的库:

   import pandas as pd
   import mplfinance as mpf

2. 读取CSV文件:

   df = pd.read_csv('999999_dcolhchg.csv')

3. 日期列加上19000000并转换为日期格式:

   df['date'] = pd.to_datetime(df['date'] + 19000000, format='%Y%m%d')

   这里,我们对日期列加上19000000,然后使用`pd.to_datetime`函数将其转换为日期格式,`format='%Y%m%d'`指定日期格式。
4. 设置日期列为索引:

   df.set_index('date', inplace=True)

5. 重命名列名:

   df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close'}, inplace=True)

   确保列名与`mplfinance`要求的一致。
6. 绘制蜡烛图:

   mpf.plot(df, type='candle', style='charles', title='Candlestick Chart', ylabel='Price')

   使用`mplfinance`库绘制蜡烛图。

示例二

import pandas as pd
import mplfinance as mpf
# 读取CSV文件
df = pd.read_csv('999999_dcolhchg.csv')
# 转换日期格式,假设日期在"date"列中
df['date'] = pd.to_datetime(df['date'].apply(lambda x: 19000000 + int(x)), format='%Y%m%d')
# 设置日期列为索引
df.set_index('date', inplace=True)
# 确保列名与mplfinance的要求一致
df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close'}, inplace=True)
# 绘制蜡烛图
mpf.plot(df, type='candle', style='charles', title='Candlestick Chart', ylabel='Price')

代码解释
1. 导入库

   import pandas as pd
   import mplfinance as mpf

   - pandas 用于数据处理。
   - mplfinance 用于绘制蜡烛图。
2. 读取CSV文件

   df = pd.read_csv('999999_dcolhchg.csv')

3. 转换日期格式

   df['date'] = pd.to_datetime(df['date'].apply(lambda x: 19000000 + int(x)), format='%Y%m%d')

   - 我们将`date`列的值转换为实际的日期值。
4. 设置日期列为索引

   df.set_index('date', inplace=True)

5. 重命名列名

   df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close'}, inplace=True)

   - 将列名重命名以匹配`mplfinance`的要求。
6. 绘制蜡烛图

   mpf.plot(df, type='candle', style='charles', title='Candlestick Chart', ylabel='Price')

   - 使用`mplfinance`绘制蜡烛图。

示例三

import pandas as pd
import mplfinance as mpf

# 读取CSV文件
df = pd.read_csv('999999_dcolhchg.csv')

# 将日期列加上19000000,然后转换为日期格式
df['date'] = pd.to_datetime(df['date'] + 19000000, format='%Y%m%d')

# 设置日期列为索引
df.set_index('date', inplace=True)

# 确保列名与mplfinance的要求一致
df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close'}, inplace=True)

# 提取最后100个点的数据
df_last_100 = df.tail(100)

# 保存蜡烛图到文件
mpf.plot(df_last_100, type='candle', style='charles', title='Last 100 Points Candlestick Chart', ylabel='Price', savefig='last_100_candlestick_chart.png')

# 显示蜡烛图
mpf.plot(df_last_100, type='candle', style='charles', title='Last 100 Points Candlestick Chart', ylabel='Price')

在这段代码中,我们做了以下事情:
1. 读取CSV文件。
2. 将日期列加上19000000并转换为日期格式。
3. 设置日期列为索引。
4. 确保列名与 mplfinance 的要求一致。
5. 提取最后100个点的数据。
6. 首先绘制并保存蜡烛图到名为 last_100_candlestick_chart.png 的文件中。
7. 然后单独再次绘制图像以在屏幕上显示。

示例四

import pandas as pd
import plotly.graph_objects as go

# 读取CSV文件
df = pd.read_csv('999999_dcolhchg.csv')

# 将日期列加上19000000,然后转换为日期格式
df['date'] = pd.to_datetime(df['date'] + 19000000, format='%Y%m%d')

# 提取最后100个点的数据
df_last_100 = df.tail(100)

# 创建蜡烛图
fig = go.Figure(data=[go.Candlestick(x=df_last_100['date'],
                                     open=df_last_100['open'],
                                     high=df_last_100['high'],
                                     low=df_last_100['low'],
                                     close=df_last_100['close'])])

# 设置标题和轴标签
fig.update_layout(title='Last 100 Points Candlestick Chart',
                  yaxis_title='Price',
                  xaxis_title='Date')

# 显示蜡烛图
fig.show()

以上代码中,通过 Plotly 创建了一个交互式的蜡烛图,并设置了在鼠标悬停时显示详细信息。

当前显示的列名来自你的 CSV 文件,请确保它们与 Plotly 的参数匹配。如果你的数据框列名不同,请记得更改。例如,如果列名是 'open', 'high', 'low', 'close',不需要重命名。然而,如果它们不同,请确保你提供了相应列名。

使用 Plotly 和 Bokeh 等库可以更容易地实现交互式功能。如果你打算在 Jupyter Notebook 中使用它,确保 Jupyter Notebook 已安装 Plotly 并可以显示 Plotly 图形。 

示例五

import pandas as pd
import plotly.graph_objects as go
import plotly.offline as pyo

# 读取CSV文件
df = pd.read_csv('999999_dcolhchg.csv')

# 将日期列加上19000000,然后转换为日期格式
df['date'] = pd.to_datetime(df['date'] + 19000000, format='%Y%m%d')

# 设置日期列为索引
df.set_index('date', inplace=True)

# 提取最后100个点的数据
df_last_100 = df.tail(100)

# 创建图形对象
fig = go.Figure(data=[go.Candlestick(x=df_last_100.index,
                                     open=df_last_100['open'],
                                     high=df_last_100['high'],
                                     low=df_last_100['low'],
                                     close=df_last_100['close'])])

# 设置图表的标题和标签
fig.update_layout(title='Last 100 Points Candlestick Chart',
                  yaxis_title='Price')

# 在浏览器中显示图表
pyo.plot(fig, filename='last_100_candlestick_chart.html')

此代码执行的步骤如下:
1. 读取CSV文件。
2. 将日期列加上19000000并转换为日期格式。
3. 设置日期列为索引。
4. 提取最后100个点的数据。
5. 使用 plotly.graph_objects 创建蜡烛图。
6. 更新图表的标题和y轴标签。
7. 使用 plotly.offline.plot 函数生成一个临时的HTML文件,并在默认的互联网浏览器中打开该文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jmeter系列之作用域、执行顺序

这一节主要解释元件作用域和执行顺序,以及整理之前说过的参数化的方式。 作用域 之前也留下了一个问题。怎么给不同的请求设置不同的Header?后续也透露了可以使用Sample Controller,结合元件的作用域来实现 在Jmeter中,元件的作…

轻松搞定由于找不到msvcr120.dll,无法继续执行代码的问题,总结五种msvcr120.dll丢失修复方法

当您在使用基于Windows的系统运行软件或游戏时,可能会遇到如下错误提示:“由于找不到 msvcr120.dll,无法继续执行代码”。这个问题表明您的系统缺少 Microsoft Visual C Redistributable Packages for Visual Studio 2013 中的一个关键组件&a…

【LeetCode Cookbook(C++ 描述)】一刷二叉树综合(下)

目录 LeetCode #257:Binary Tree Paths 二叉树的所有路径深度优先搜索广度优先搜索 LeetCode #404:Sum of Left Leaves 左叶子之和深度优先搜索广度优先搜索 LeetCode #199:Binary Tree Right Side View 二叉树的右视图广度优先搜索深度优先搜…

单体应用spring Task和分布式调度

Spring Task 1.通过 Spring Task,您可以方便地在 Java 应用程序中实现定时任务,比如每天凌晨进行数据同步、每小时执行一次清理操作等。 2.1 启动类添加EnableScheduling注解(默认情况下,系统会自动启动一个线程) 2.2 在需要定时执行的方…

解决 Swift 6 全局变量不能满足并发安全(concurrency-safe)读写的问题

概述 WWDC 24 终于在 Swift 十岁生日发布了全新的 Swift 6。这不仅意味着 Swift 进入了全新的“大”版本时代,而且 Swift 编译器终于做到了并发代码执行的“绝对安全”。 不过,从 Swift 5 一步迈入“新时代”的小伙伴们可能对新的并发检查有些许“水土不…

连锁美业门店收银系统拓客系统预约系统Java源码-博弈美业APP如何进行课程核销?

* 课程开课后,到课程结束前,这段时间均可以进行课程核销 * 课程核销的权限,仅限内部员工 * 核销课程时,需要切换到总部,才有核销课程的权限 方法一:通过“课程核销”直接核销 点击“课程核销”&#xff…

强大的接口测试可视化工具:Postman Flows

Postman Flows是一种接口测试可视化工具,可以使用流的形式在Postman工作台将请求接口、数据处理和创建实际流程整合到一起。如下图所示 Postman Flows是以API为中心的可视化应用程序开发界面。它提供了一个无限的画布用于编排和串连API,数据可视化来显示…

[C#]winform基于深度学习算法MVANet部署高精度二分类图像分割onnx模型高精度图像二值化

【训练源码】 https://github.com/qianyu-dlut/MVANet 【参考源码】 https://github.com/hpc203/MVANet-onnxrun 【算法介绍】 二分图像分割(DIS)最近出现在从高分辨率自然图像中进行高精度对象分割方面。在设计有效的DIS模型时,主要的挑战是…

XMGoat:一款针对Azure的环境安全检测工具

关于XMGoat XMGoat是一款针对Azure的环境安全检测工具,XM Goat 由 XM Cyber Terraform 模板组成,可帮助您了解常见的 Azure 安全问题。每个模板都是一个用于安全技术学习的靶机环境,包含了一些严重的配置错误。 在该工具的帮助下&#xff0c…

景区门票预订系统开发方案概述

随着旅游业的蓬勃发展,提升游客体验、优化景区管理成为了各大景区亟待解决的问题。景区门票预订系统的开发,正是顺应这一趋势的重要举措。以下是一个简要的景区门票预订系统开发方案概述,旨在通过科技手段实现票务管理的智能化、便捷化。 一、…

faiss向量数据库测试《三体》全集,这家国产AI加速卡,把性能提了7倍!

在人工智能和机器学习技术的飞速发展中,向量数据库在处理高维数据方面扮演着日益重要的角色。近年来,随着大型模型的流行,向量数据库技术也得到了进一步的发展和完善。 向量数据库为大型模型提供了一个高效的数据管理和检索平台,…

如何将音乐保存为文件格式为铃声,怎么把音乐保存为MP3格式

许多小伙伴在听到好听的音乐时,会将其下载保存。如果需要将音乐文件格式转换成来电铃声时,就需要借助专业的音频处理软件了,音频处理软件可以帮助我们转化音乐文件格式,那么下面就来给大家介绍如何将音乐保存为文件格式为铃声&…

Kali Linux-设置系统24小时时间制

文章目录 设置系统24小时时间制 设置系统24小时时间制 在Kali Linux中,如果系统时间不是以24小时制显示,你可以通过修改系统时间格式配置文件来调整为24小时制。以下是具体的操作步骤: 1.编辑/etc/locale.conf配置文件。 vim /etc/locale.c…

【gitlab】gitlab-ce:17.3.0-ce.0 之2:配置

参考阿里云的教程docker的重启 sudo systemctl daemon-reload sudo systemctl restart docker配置 –publish 8443:443 --publish 8084:80 --publish 22:22 sudo docker ps -a 當容器狀態為healthy時,說明GitLab容器已經正常啟動。 root@k8s-master-pfsrv:~

Python WebSocket自动化测试:构建高效接口测试框架

为了更高效地进行WebSocket接口的自动化测试,我们可以搭建一个专门的测试框架。本文将介绍如何使用Python构建一个高效的WebSocket接口测试框架,并重点关注以下四个方面的内容:运行测试文件封装、报告和日志的封装、数据驱动测试以及测试用例…

调查显示:超过30 %企业遭受过网络攻击,如何防范?

对于企业来讲,屡禁不止的网络安全攻击始终是阻碍业务发展的重大隐患。调查结果显示,有近8成的企业将网络安全视为企业很重要的工作之一,另外,有超过三成的企业遭受过网络安全攻击。 企业作为网络安全事故的责任承担方,…

synchronized和Lock(ReentrantLock)及二者区别

synchronized 是用于实现线程同步的关键字。它提供了两种主要的方式来保证多个线程访问共享资源时的互斥性和可见性:同步块和同步方法。 同步块 同步块允许你指定一个对象作为锁,并保护一段代码区域。这样,同一时刻只有一个线程可以执行这…

ChatGPT 为什么不建议关闭 MySQL 严格模式?

社区王牌专栏《一问一实验:AI 版》全新改版归来,得到了新老读者们的关注。其中不乏对 ChatDBA 感兴趣的读者前来咨询,表达了想试用体验 ChatDBA 的意愿,对此我们表示感谢 🤟。 目前,ChatDBA 还在最后的准备…

记录一次 npm ERR! cb() never called! 解决过程

gitlab cicd过程,使用docker部署Vue3前端项目,报错如下: 针对 npm ERR! cb() never called! 这个报错,网上有很多解决方案,大都是清空缓存,重新运行npm 之类的。笔者全都试过,无法解决问题。笔者…

linux,docker查看资源消耗总结

在linux和docker中我们将一个程序运行到后台,之后我们想查看它的运行状态,对于服务器的资源消耗等等 1.linux查看进程 ps aux | grep python ps aux:列出所有正在运行的进程。grep python:过滤出包含 python 的进程 2.linux查…