Pyecharts K 线图

Pyecharts K 线图语法

K 线图,又叫做 “蜡烛图”。我们都知道股市中包含 4 个指标:开盘价、收盘价、最低价、最高价,其中 K 线图就是围绕这 4 个指标来展开的一种图表。

在 Pyecharts 中,我们可以使用 Kline 这个模块来绘制一个 K 线图。

语法:

k = Kline()
k.add_xaxis(xaxis_data)
k.add_yaxis(series_name, y_axis)

说明:

Kline() 用于创建一个 K 线图对象,add_xaxis() 方法用于添加 x 轴数据,add_yaxis() 方法用于添加 y 轴数据。

示例 1:K 线图

import numpy as np
import pandas as pd
from pyecharts.charts import Kline

# 数据
data = [
    ['2025-01-01', 197, 165, 156, 200],
    ['2025-01-02', 161, 164, 155, 188],
    ['2025-01-03', 146, 214, 100, 215],
    ['2025-01-04', 228, 233, 215, 236],
    ['2025-01-05', 230, 226, 220, 231]
]
df = pd.DataFrame(data, columns=['日期', '开盘', '收盘', '最低', '最高'])
# 获取日期部分
dates = list(df['日期'])
# 设置行名
df.set_index('日期', inplace=True)
# 获取数据部分
df_array = np.array(df)
df_list = df_array.tolist()

# 绘图
k = Kline()
k.add_xaxis(xaxis_data=dates)
k.add_yaxis(series_name='', y_axis=df_list)

# 渲染
k.render()

运行生成的 render.html,浏览器效果如下图所示。

pyecharts K 线图

分析:

K 线图的每一项代表的是某个时间的股市数据,当我们鼠标移到某一项时,就会显示该时间的开盘价、收盘价、最低价、最高价,如下图所示。

Pyecharts K 线图的提示框

Pyecharts K 线图案例

当前项目下的 data 文件夹中有一个 stock.csv 文件,项目结构如下图所示。stock.csv 文件保存的是一个月内的股市数据,部分内容如下图所示。

Pyecharts K 线图的项目结构

stock.csv部分数据

示例 2:基本 K 线图

import numpy as np
import pandas as pd
from pyecharts.charts import Kline

# 读取文件
df = pd.read_csv(r'data/stock.csv')
# 获取日期部分
dates = list(df['日期'])
# 设置行名
df.set_index('日期', inplace=True)
# 获取数据部分
df_array = np.array(df)
df_list = df_array.tolist()

# 绘图
k = Kline()
k.add_xaxis(xaxis_data=dates)
k.add_yaxis(series_name='', y_axis=df_list)

# 渲染
k.render()

运行生成的 render.html,浏览器效果如下图所示。

pyecharts 基本 K 线图

示例 3:添加标记线

import numpy as np
import pandas as pd
from pyecharts.charts import Kline
import pyecharts.options as opts

# 读取文件
df = pd.read_csv(r'data/stock.csv')
# 获取日期部分
dates = list(df['日期'])
# 设置行名
df.set_index('日期', inplace=True)
# 获取数据部分
df_array = np.array(df)
df_list = df_array.tolist()

# 绘图
k = Kline()
k.add_xaxis(xaxis_data=dates)
k.add_yaxis(series_name='', y_axis=df_list)
# 添加标记线
k.set_series_opts(markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='max')]))

# 渲染
k.render()

运行生成的 render.html,浏览器效果如下图所示。

Pyecharts K 线图添加标记线

示例 4:添加分割区域

import numpy as np
import pandas as pd
from pyecharts.charts import Kline
import pyecharts.options as opts

# 读取文件
df = pd.read_csv(r'data/stock.csv')
# 获取日期部分
dates = list(df['日期'])
# 设置行名
df.set_index('日期', inplace=True)
# 获取数据部分
df_array = np.array(df)
df_list = df_array.tolist()

# 绘图
k = Kline()
k.add_xaxis(xaxis_data=dates)
k.add_yaxis(series_name='', y_axis=df_list)
# 添加分割区域
k.set_global_opts(
    yaxis_opts=opts.AxisOpts(
        is_scale=True,
        splitarea_opts=opts.SplitAreaOpts(
            is_show=True, 
            areastyle_opts=opts.AreaStyleOpts(opacity=1)
        ),
    )
)

# 渲染
k.render()

运行生成的 render.html,浏览器效果如下图所示。

Pyecharts K 线图添加分割区域

示例 5:添加区域缩放

import numpy as np
import pandas as pd
from pyecharts.charts import Kline
import pyecharts.options as opts

# 读取文件
df = pd.read_csv(r'data/stock.csv')
# 获取日期部分
dates = list(df['日期'])
# 设置行名
df.set_index('日期', inplace=True)
# 获取数据部分
df_array = np.array(df)
df_list = df_array.tolist()

# 绘图
k = Kline()
k.add_xaxis(xaxis_data=dates)
k.add_yaxis(series_name='', y_axis=df_list)
# 添加区域缩放
k.set_global_opts(
    datazoom_opts=[opts.DataZoomOpts(pos_bottom='-2%')]
)

# 渲染
k.render()

运行生成的 render.html,浏览器效果如下图所示。

Pyecharts K 线图添加区域缩放

上一篇: Pyecharts 箱线图

下一篇: Pyecharts 水球图

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号