展示网站建设,重庆免费建网站,wordpress分类内没有文章,牡丹江建设工程信息网站使用pyecharts绘制K线图进阶版
简介
K线图#xff08;Kandlestick Chart#xff09;#xff0c;又称蜡烛图#xff0c;是一种用于可视化金融市场价格走势和交易数据的图表类型。它是股票、外汇、期货等金融市场中最常用的技术分析工具之一#xff0c;可以提供关于价格变…
使用pyecharts绘制K线图进阶版
简介
K线图Kandlestick Chart又称蜡烛图是一种用于可视化金融市场价格走势和交易数据的图表类型。它是股票、外汇、期货等金融市场中最常用的技术分析工具之一可以提供关于价格变动、趋势和市场情绪的重要信息。K线图通常包括四个关键价格点开盘价、收盘价、最高价和最低价这些价格点形成了一个矩形蜡烛或者一根垂直的线段便于直观地观察价格走势。
作为Python的数据可视化神器pyecharts也可以帮我们绘制K线图。本文就为大家介绍一下如何使用pyecharts绘制K线图。
K线图常用配置类
Kline: K线图类用于创建K线图对象。opts.AxisOpts坐标轴配置类用于设置横坐标轴和纵坐标轴的样式和属性。opts.DataZoomOpts数据缩放配置类用于设置数据缩放的样式和属性。opts.MarkLineOpts标线配置类用于设置标线的样式和属性。opts.MarkLineItem标线项类用于设置标线的类型和数值。opts.TooltipOpts提示框配置类用于设置提示框的样式和属性。
以上是一些常用的配置类我们可以配置来设置K线图的样式和交互效果。根据具体需求可以灵活使用这些配置类来定制自己想要的K线图。其他配置类在这里就不一一做介绍了。
绘制基础K线图
首先我们来绘制一个简单的K线图示例代码如下
from pyecharts import options as opts
from pyecharts.charts import Kline# 准备K线图的数据
x_data [2022-09-01, 2022-09-02, 2022-09-03, 2022-09-04, 2022-09-05]
y_data [[90, 120, 80, 110], # 第一天的K线数据开盘价、最高价、最低价、收盘价[110, 130, 100, 120], # 第二天的K线数据[130, 140, 90, 110], # 第三天的K线数据[110, 130, 100, 120], # 第四天的K线数据[120, 140, 90, 110], # 第五天的K线数据
]# 创建K线图对象
kline (Kline().add_xaxis(xaxis_datax_data) # 设置x轴数据.add_yaxis(series_nameK线图, # 设置数据系列的名称y_axisy_data, # 设置y轴数据itemstyle_optsopts.ItemStyleOpts(colorblue, color0green), # 设置K线图的颜色).set_global_opts(xaxis_optsopts.AxisOpts(is_scaleTrue), # 设置x轴选项使其自适应yaxis_optsopts.AxisOpts(is_scaleTrue), # 设置y轴选项使其自适应title_optsopts.TitleOpts(titleK线图示例), # 设置标题选项)
)# 渲染图表
kline.render(kline.html)运行脚本绘制的K线图如下 当然我们平时看到的K线图更为复杂有其他图形和线条帮助我们来看K线图pyecharts同样也可以帮助我们绘制辅助线条代码如下
import random
from pyecharts import options as opts
from pyecharts.charts import Kline# 随机数据
data []
# 使用嵌套的循环结构生成双层随机嵌套列表
for _ in range(30):inner_list []# 内层列表个数for _ in range(4):random_num random.randint(3000, 3500)inner_list.append(random_num)data.append(inner_list)# 创建K线图对象
c (Kline()# 添加横坐标数据.add_xaxis([2022/9/{}.format(i 1) for i in range(30)])# 添加纵坐标数据.add_yaxis(kline,data,# 设置标线配置项标记最大值markline_optsopts.MarkLineOpts(data[opts.MarkLineItem(type_max, value_dimclose)]),)# 设置全局配置项.set_global_opts(xaxis_optsopts.AxisOpts(is_scaleTrue), # 设置横坐标配置项is_scaleTrue表示自适应刻度yaxis_optsopts.AxisOpts(is_scaleTrue, # 设置纵坐标轴配置项is_scaleTrue表示自适应刻度splitarea_optsopts.SplitAreaOpts(is_showTrue, # 设置分割区域配置项is_showTrue表示显示分割区域areastyle_optsopts.AreaStyleOpts(opacity1) # 设置分割区域样式配置项opacity1表示不透明),),title_optsopts.TitleOpts(titleK线图示例2), # 设置标题配置项)
)# 渲染为HTML文件
c.render(K线图示例2.html)运行脚本生成的图像如下 很多时候我们想要看到更短期的价格走向我们可以在上面的基础上加上鼠标滑动缩放的效果便于我们查看短期的价格代码如下
import random
from pyecharts import options as opts
from pyecharts.charts import Kline# 随机数据
data []
# 使用嵌套的循环结构生成双层随机嵌套列表
for _ in range(30):inner_list []# 内层列表个数for _ in range(4):random_num random.randint(3000, 3500)inner_list.append(random_num)data.append(inner_list)# 创建K线图对象
c (Kline()# 添加横坐标数据.add_xaxis([2022/9/{}.format(i 1) for i in range(30)])# 添加纵坐标数据.add_yaxis(kline,data,# 设置图表元素样式itemstyle_optsopts.ItemStyleOpts(color#ec0000,color0#00da3c,border_color#8A0000,border_color0#008F28,),)# 设置全局配置项.set_global_opts(# 设置横坐标轴配置项is_scaleTrue表示自适应刻度xaxis_optsopts.AxisOpts(is_scaleTrue),# 设置纵坐标轴配置项is_scaleTrue表示自适应刻度yaxis_optsopts.AxisOpts(is_scaleTrue,# 设置分割区域配置项is_showTrue表示显示分割区域splitarea_optsopts.SplitAreaOpts(is_showTrue,# 设置分割区域样式配置项opacity1表示不透明areastyle_optsopts.AreaStyleOpts(opacity1)),),# 设置数据缩放配置项type_inside表示内置缩放datazoom_opts[opts.DataZoomOpts(type_inside)],# 设置标题配置项titleK线图鼠标缩放为标题内容title_optsopts.TitleOpts(titleK线图示例3),)
)# 渲染为HTML文件
c.render(K线图示例3.html)运行脚本如下图我们就可在生成的图像上滑动鼠标展示某几天的价格变化信息 如果我们需要查看更长周期的图像鼠标缩放可能会比较麻烦我们可以使用滑块的方法来方便我们的查看具体实现代码如下
import random
from pyecharts import options as opts
from pyecharts.charts import Kline# 随机数据
data []
# 使用嵌套的循环结构生成双层随机嵌套列表
for _ in range(30):inner_list []# 内层列表个数for _ in range(4):random_num random.randint(3000, 3500)inner_list.append(random_num)data.append(inner_list)# 创建K线图对象
c (Kline()# 添加横坐标数据.add_xaxis([2022/9/{}.format(i 1) for i in range(30)])# 添加纵坐标数据.add_yaxis(kline, data)# 设置全局配置项.set_global_opts(xaxis_optsopts.AxisOpts(is_scaleTrue), # 设置横坐标轴配置项is_scaleTrue表示自适应刻度yaxis_optsopts.AxisOpts(is_scaleTrue, # 设置纵坐标轴配置项is_scaleTrue表示自适应刻度splitarea_optsopts.SplitAreaOpts(is_showTrue, # 设置分割区域配置项is_showTrue表示显示分割区域areastyle_optsopts.AreaStyleOpts(opacity1) # 设置分割区域样式配置项opacity1表示不透明),),datazoom_opts[opts.DataZoomOpts()], # 设置数据缩放配置项位置在底部偏下title_optsopts.TitleOpts(titleK线图示例4), # 设置标题配置项)
)# 渲染为HTML文件
c.render(K线图示例4.html)运行脚本生成的图像如下 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你