在 Pyecharts 中,我们可以使用 set_series_opts() 方法的 markline_opts 参数来添加标记线效果。
语法:
obj.set_series_opts(markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='min')]))
说明:
标记线和标记点的作用是一样的,只不过表现形式不一样而已。对于标记线来说,type_ 参数也有 3 种取值,如下表所示。
| 取值 | 说明 |
|---|---|
| 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(markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='min')]))
# 渲染
line.render()
运行生成的 render.html,浏览器效果如下图所示。

分析:
type_='min' 表示为每一条折线添加一个标记线,该标记线标记的是 “最小值” 同样地,对于这个例子来说,下面 2 种方式是等价的。
# 方式1:set_series_opts()
line.set_series_opts(markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='min')]))
# 方式2:add_yaxis()
line.add_yaxis(
series_name='上衣',
y_axis=list(df['上衣']),
markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='min')])
)
对于这个例子来说,当我们把 type_='min' 改为 type_='max' 之后,此时效果如下图所示。

