在 Pyecharts 中,我们可以使用 set_global_opts() 方法的 tooltip_opts 参数来对提示框进行设置。
语法:
objs.set_global_opts(tooltip_opts=opts.TooltipOpts(
is_show,
is_always_show_content,
trigger,
trigger_on
))
说明:
obj 是一个图表对象。参数 is_show 用于定义是否显示提示框,取值是一个布尔值(默认值为 True)。参数 is_always_show_content 用于定义是否一直显示提示框,取值是一个布尔值(默认值为 False)。
参数 trigger 用于定义触发的类型,常用取值如下表所示。
| 取值 | 说明 |
|---|---|
| item | 图形触发,用于散点图、饼状图等无类目轴的图表 |
| axis | 坐标轴触发,用于折线图、柱状图等有类目轴的图表 |
| none(默认值) | 什么都不触发 |
参数 trigger_on 用于定义触发的条件,常用取值如下表所示。
| 取值 | 说明 |
|---|---|
| mousemove(默认值) | 鼠标移动时触发 |
| click | 鼠标点击时触发 |
| mousemove|click | 鼠标移动或鼠标点击时都会触发 |
| none | 什么都不触发 |
示例 1:提示框 is_always_show_content 参数
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_global_opts(tooltip_opts=opts.TooltipOpts(is_always_show_content=True))
# 渲染
line.render()
运行生成的 render.html,浏览器效果如下图 1 所示。当鼠标移到 “1月” 这个节点时,浏览器效果如下图 2 所示。


分析:
is_always_show_content=True 表示当鼠标移到节点上时,该节点对应的提示框会一直显示而不会消失。此外,小伙伴们可以自行试一下 is_show 这个参数。
示例 2:提示框 trigger 参数
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_global_opts(tooltip_opts=opts.TooltipOpts(trigger='axis'))
# 渲染
line.render()
运行生成的 render.html,浏览器效果如下图 1 所示。当鼠标移到 “1月” 时 ,浏览器效果如下图 2 所示。


分析:
对于折线图来说,我们设置 trigger='axis' 了之后,当鼠标移到 x 轴某个坐标时,把该坐标对应的所有数据显示出来。这种方式可以更好地查看坐标轴位置对应的数据。
示例 3:trigger_on 参数
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_global_opts(tooltip_opts=opts.TooltipOpts(trigger_on='click'))
# 渲染
line.render()
运行生成的 render.html,浏览器效果如下图所示。当鼠标移到 “1月” 这个节点时,并不会显示提示框。但是我们点击该节点后,就会显示提示框了,浏览器效果如下图所示。


分析:
默认情况下,鼠标移动到节点就会显示提示框。trigger_on='click' 表示只有鼠标点击节点才会显示提示框,其他情况不会显示提示框。
