用pyecharts画出股票K线图和成交量的方法

—————————————————————————————————————————————
在金融市场中,K线图是一种用来表现股票价格波动情况的图表。它通过表示股票开盘价、收盘价、最高价和最低价来描绘一段时间内的股票变化趋势。

本篇文章将要介绍如何使用 Python 的 pyecharts 库来绘制指定股票日期内的 K 线图和成交量图,并添加移动平均线。

首先需要安装需要的库:

pip install akshare pandas pyecharts

ps:如果下载慢请看pip命令镜像源、镜像源、pip安装库、python、python镜像源、清华镜像源配置

关于akshare

  1. akshare是一个基于Python的开源金融数据接口库,提供了对股票、基金、期货、债券、外汇等金融市场数据的获取和处理功能,同时还包括宏观经济数据和区块链相关数据等。

  2. 使用akshare,用户可以通过简单的Python代码轻松获取各种金融数据,并进行相应的数据处理和分析。akshare所提供的数据接口都来自于一些公开的金融数据平台,如新浪财经、东方财富等。

  3. 除此之外,akshare还提供了一些常用的数据可视化工具,例如K线图、面积图、条形图等,方便用户对所获取的数据进行图表展示。同时,akshare还支持多种数据格式的导入和导出,如CSV、Excel等,便于用户将数据集成到自己的工作流程中。
    导入相关库:

关于pyecharts

  1. pyecharts是一个基于Python的开源可视化库,用于生成各种类型的交互式图表。它是由Apache ECharts团队开发的,因此所有的图表都使用ECharts作为底层渲染引擎,可以生成高质量、美观、交互性强的可视化图表。

  2. pyecharts支持多种图表类型,包括折线图、柱状图、散点图、饼图、雷达图、地图等。此外,pyecharts还支持自定义主题和样式,使得用户可以轻松实现自己需要的图表效果。

  3. 在数据方面,pyecharts支持多种数据格式的导入,如CSV、Excel、JSON等,同时还支持与pandas等数据处理库集成,方便用户快速生成可视化图表。

  4. 在交互方面,pyecharts提供了鼠标悬停、点击、缩放、平移等功能,用户可以通过这些交互方式更加直观地理解数据。

关于pandas

  1. pandas是一个基于Python的强大数据处理库,它提供了高效的数据操作和分析工具,能够方便地处理各种结构化数据。

  2. pandas主要包含两个核心数据结构:Series和DataFrame。其中,Series用于表示一维数组,类似于Python中的列表,但支持更多的数据类型和操作;而DataFrame则是一个二维表格,每列可以有不同的数据类型,并且可以进行行列索引以及基于标签、位置等方式的数据选择和操作。

  3. pandas支持从各种数据源读取数据,如CSV、Excel、SQL数据库、JSON等,同时也支持将数据写入这些数据源。除此之外,pandas还提供了强大的数据处理和分析功能,如数据清洗、合并、排序、聚合、透视等,以及时间序列数据分析和统计建模等高级分析工具。

导包

import time
import akshare as ak
import pandas as pd
from pyecharts.charts import *
from pyecharts import options as opts
import datetime

在这个示例中,我们将绘制股票代码为“002318”、起始日期为60天前到当前日期的K线图和成交量图。

now = datetime.datetime.now()
yyyymmdd = '%04d%02d%02d'%(now.year,now.month,now.day)
last_month = datetime.datetime.today()-datetime.timedelta(days=60)
l_yyyymmdd = '%04d%02d%02d'%(last_month.year,last_month.month,last_month.day)df = ak.stock_zh_a_hist(symbol="002318", start_date=f'{l_yyyymmdd}', end_date=f'{yyyymmdd}', adjust="qfq").iloc[:, [0,1,2,3,4,5,7]]

akshare 库提供了一个名为 stock_zh_a_hist 的函数,用于获取 A 股历史行情数据。我们将从60天前(last_month)到现在(now)获取股票代码为 “002318” 的历史行情数据,该数据经过前复权处理( adjust (调整) =“qfq”)。

接下来,对数据进行处理,设置 index (指数) 并新建列:

# 把date作为日期索引
df.index = pd.to_datetime(df.date)
df.index = df.index.strftime('%Y%m%d')
df = df.sort_index()
df['sma'] = df.close.rolling(5).mean()
df['lma'] = df.close.rolling(10).mean()
df['lma20'] = df.close.rolling(20).mean()
df['lma30'] = df.close.rolling(30).mean()
df['lma60'] = df.close.rolling(60).mean()

将 date (日期) 列设为 DataFrame 的 index (指数) ,并把日期格式转换成 %Y%m%d 的字符串格式。然后按日期排序,添加五种不同的移动平均线:MA5、MA10、MA20、MA30 和 MA60。

接下来,我们将使用 pyecharts 创建 K 线图及均线。

kline = (Kline(init_opts=opts.InitOpts(width="600px", height="300px")).add_xaxis(xaxis_data=list(df.index))  # X轴数据.add_yaxis(series_name="klines",  # 序列名称y_axis=df[["open", "close", "low", "high"]].values.tolist(),  # Y轴数据itemstyle_opts=opts.ItemStyleOpts(color="#ec0000", color0="#00da3c"),markpoint_opts=opts.MarkPointOpts(data=[  # 添加标记符opts.MarkPointItem(type_='max', name='最大值',value_index=4),opts.MarkPointItem(type_='min', name='最小值',value_index=3), ],# symbol='circle',# symbol_size=[100,30]),).set_global_opts(title_opts=opts.TitleOpts(title="K线及均线", pos_left='45%'),  # 标题位置legend_opts=opts.LegendOpts(pos_right="35%", pos_top="5%"),  # 图例位置# legend_opts=opts.LegendOpts(is_show=True, pos_bottom=10, pos_left="center"),datazoom_opts=[opts.DataZoomOpts(is_show=False,type_="inside",  # 内部缩放xaxis_index=[0, 1], # x轴和y轴都缩放 range_start=0, # 起始位置为0% range_end=100, # 结束位置为100% ), yaxis_opts= opts (选择) .AxisOpts(is_scale=True), # Y轴刻度自适应 ) )

添加 MA5 ,MA10,MA20,MA30,MA60折线图

line_ma5 = ( Line().add_xaxis(xaxis_data=list(df.index  )).add_yaxis( series_name="MA5", y_axis=df['sma'].values.tolist(), is_smooth=True, linestyle_opts= opts.LineStyleOpts( width  =2, opacity=0.5), label_opts= opts.LabelOpts(is_show=False), ) )
line_ma10 = ( Line().add_xaxis(xaxis_data=list(df.index  )).add_yaxis( series_name="MA10", y_axis=df['lma'].values.tolist(), is_smooth=True, linestyle_opts= opts.LineStyleOpts( width  =2, opacity=0.5), label_opts= opts.LabelOpts(is_show=False), ) )
line_ma20 = ( Line().add_xaxis(xaxis_data=list(df.index  )).add_yaxis( series_name="MA20", y_axis=df['lma20'].values.tolist(), is_smooth=True, linestyle_opts= opts.LineStyleOpts( width  =2, opacity=0.5), label_opts= opts.LabelOpts(is_show=False), ) )
line_ma30 = ( Line().add_xaxis(xaxis_data=list(df.index  )).add_yaxis( series_name="MA30", y_axis=df['lma30'].values.tolist(), is_smooth=True, linestyle_opts= opts.LineStyleOpts( width  =2, opacity=0.5), label_opts= opts.LabelOpts(is_show=False), ) )

画出成交量柱状图,并将所有图添加到grid中生成最后的html

bar = (Bar().add_xaxis(xaxis_data=list(df.index))  # X轴数据.add_yaxis(series_name="volume",y_axis=df["volume"].tolist(),  # Y轴数据xaxis_index=1,yaxis_index=1,label_opts=opts.LabelOpts(is_show=False),itemstyle_opts=opts.ItemStyleOpts(color='#ef232a'  # '#14b143'),).set_global_opts(xaxis_opts=opts.AxisOpts(type_="category",  # 坐标轴类型-离散数据grid_index=1,axislabel_opts=opts.LabelOpts(is_show=False),),legend_opts=opts.LegendOpts(is_show=False),).overlap(line_ma5).overlap(line_ma10).overlap(line_ma20))# 图像排列
grid_chart = Grid(init_opts=opts.InitOpts(width="1600px",  # 显示图形宽度height="800px",animation_opts=opts.AnimationOpts(animation=False),  # 关闭动画)
)grid_chart.add(  # 加入均线图kline,grid_opts=opts.GridOpts(pos_left="10%", pos_right="8%", height="30%"),
)
grid_chart.add(  # 加入成交量图bar,grid_opts=opts.GridOpts(pos_left="10%", pos_right="8%", pos_top="40%", height="20%"),
)
grid_chart.render("volume.html")

akshare、pyecharts、pandas实现指定A股股票K线、成交量图(可缩放、可指定日期)相关推荐

  1. python蜡烛图预测_python tushare股票K线蜡烛图绘制

    序言:学着学着就学到股票图形绘制了,尝试了下,入门蛮简单的,后面就不知道了,现在好像mplfinance更换了新版本,老版本不支持了.以下代码能实现单个股票K线蜡烛图图形输出,不过我用的是tushar ...

  2. pandas - 股票K线数据重采样

    1 股票K线图 K线图这种图表源处于日本德川幕府时代,被当时日本米市的商人用来记录米市的行情与价格波动,后因其细腻独到的标画方式而被引入到股市及期货市场. 1.1 K线图基本形态 1.2 K线图的计算 ...

  3. python+pyecharts绘制股票k线图与日均收益率图

    k线图的绘制 数据库的连接不再赘述,需要的数据为: 1.开盘价格 2.最高价格 3.最低价格 4.收盘价格 源代码: from pyecharts import options as opts fro ...

  4. Python 获取股票K线数据

    前言 玩过股票的几乎都知道,股票历史交易日的开盘价.收盘价.最高价.最低价等指标是选股的重要依据.虽然仅仅依靠它们无法在股市中盆满钵满,但是运用好它确实能在较大程度上提高我们的赚钱概率. 当前的金融数 ...

  5. 用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)...

    在用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)一文里,我讲述了通过爬虫接口得到股票数据并绘制出K线均线图形的方式,在本文里,将 ...

  6. 太酷炫了,用python绘制股票K线图!

    大家好,我是小五 发现大家还是最喜欢股票基金话题呀~ 那说到股票基金就不得不提--K线图! 那小五今天就带大家???? 用python来轻松绘制高颜值的K线图???? 获取股票交易数据 巧妇难为无米之 ...

  7. 【Python】绘制股票K线图(烛状图)并增加成交量和移动平均线(详细简单)

    Python绘制股票K线图(烛状图)并增加成交量和移动平均线: 准备工作: 1.这里需要使用到pandas和mplfinance工具库(自行安装好). 2.下载好股票数据,需要包括:时间.开盘价.最高 ...

  8. 用python画股票分时图 github_用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)...

    在用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)一文里,我讲述了通过爬虫接口得到股票数据并绘制出K线均线图形的方式,在本文里,将 ...

  9. 使用 Python 生成股票 K 线图

    引言 在股票分析中,经常需要用到 K 线图来分析股票的价格波动情况和交易量情况.本文将介绍如何使用 Python 和 pyecharts 库生成股票 K 线图,并将其保存为 HTML 文件. 准备数据 ...

最新文章

  1. 【Django】MTV(Django)模型
  2. Openwrt系统初始时间
  3. 函数中的指针分配的内存怎么释放
  4. 程序员面试金典 - 面试题 01.07. 旋转矩阵(一次遍历+位运算)
  5. ffmpeg 分辨率 压缩_用GPU加速FFmpeg中的超分辨率功能
  6. [Thinking]从赢在中国,思考博客园的商业化
  7. 【我的物联网成长记2】设备如何进行选型?
  8. 单片机r6/r7c语言怎么用,关于单片机C51中c语言函数(-nop-())?
  9. javascript的offset、client、scroll使用方法
  10. 无可用源 没有为任何调用堆栈加载任何符号_面试官问我JVM类加载,我笑了
  11. 数据仓库与数据挖掘课后思考题整理
  12. 【U3D实战笔记】2DProject:RushMan
  13. 房价这么高,为什么租金却高不起来?
  14. 如何将一个现有的Vue网页项目封装成electron桌面应用(转载)
  15. 17小学计算机课程目录,课程
  16. java excel 注解_Java中注解学习系列教程-5 excel导出优化初级阶段
  17. 电脑开机自检的过程和屏显
  18. Listener method 'public void com.config.mq.MsgReceiver.process(java.lang.String) throw
  19. 快速访问GitHub
  20. 计算机科学是最受欢迎的英文,比较好写的计算机科技英语论文题目 计算机科技英语论文题目哪个好...

热门文章

  1. 一步获取LeetCode的cookies
  2. steam饥荒mod编写,基础的lua语言学习笔记——第二期
  3. 连载 大学生求职七大昏招(七)说谎 6
  4. 计算机心理部的活动记录表,心理部工作总结范文
  5. 统一数据交换(UDX)
  6. android音视频开发面试,来看看移动端小程序技术的前世今生!真香
  7. 分享阿里P8前端架构师技能图谱
  8. 三维GIS系统在城市发展中的应用
  9. POI报表——模板打印 AND 海量数据导出
  10. 安卓java模拟器按键精灵,如何反识别模拟器