在 Pyecharts 中,我们可以使用 set_series_opts() 方法的 markpoint_opts 参数来添加标记点效果。
语法:
obj.set_series_opts(markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='min')]))
说明:
参数 type_ 用于定义标记点的类型(注意后面有下划线),常用取值如下表所示。
| 取值 | 说明 |
|---|---|
| min | 最小值 |
| max | 最大值 |
| average | 平均值 |
示例:Pyecharts 添加标记点
import pandas as pd
from pyecharts.charts import Line
import pyecharts.options as opts
# 数据
data = [
['1月', 450, 110],
['2月', 420, 220],
['3月', 560, 150],
['4月', 480, 310],
['5月', 530, 250],
['6月', 620, 160]
]
df = pd.DataFrame(data, columns=['月份', '上衣', '裤子'])
# 绘图
line = Line()
line.add_xaxis(xaxis_data=list(df['月份']))
# 第1条折线
line.add_yaxis(series_name='上衣', y_axis=list(df['上衣']))
# 第2条折线
line.add_yaxis(series_name='裤子', y_axis=list(df['裤子']))
# 设置标记点
line.set_series_opts(markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='min')]))
# 渲染
line.render()
运行生成的 render.html,浏览器效果如下图所示。

分析:
type_='min' 表示为每一条折线添加一个标记点,该标记点标记的是 “最小值”。对于系列设置来说,除了可以在 set_series_opts() 方法中进行设置之外,我们还可以在 add_yaxis() 方法中进行设置。对于这个例子来说,下面 2 种方式是等价的。
# 方式1:set_series_opts()
line.set_series_opts(markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='min')]))
# 方式2:add_yaxis()
line.add_yaxis(
series_name='上衣',
y_axis=list(df['上衣']),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='min')])
)
简单来说,add_yaxis() 方法拥有 set_series_opts() 方法中的所有参数。在之前的 “pyecharts 折线图” 这一节中,我们使用的其实就是第 2 种方式。不过在实际开发中,对于系列设置,我们还是更推荐使用 set_series_opts() 方法来实现,主要是这种方式可以让我们的代码更加直观了然。
对于这个例子来说,当我们把 type_='min' 改为 type_='max' 之后,此时效果如下图所示。

