在 Pyecharts 中,我们可以使用 set_series_opts() 方法的 label_opts 参数来对标签进行设置。
语法:
obj.set_series_opts(label_opts=opts.LabelOpts(
is_show,
position,
formatter,
font_size,
font_weight,
color
))
说明:
obj 是一个图表对象。参数 is_show 表示是否显示标签,取值为 True 或 False(默认值为 True)。
参数 position 用于定义标签的位置,常用取值如下表所示。
| 取值 | 说明 |
|---|---|
| center(默认值) | 居中显示 |
| left | 靠左显示 |
| right | 靠右显示 |
参数 formatter 用于对标签内容进行自定义格式:{a} 表示系列名,{b} 表示数据名,{c} 表示数据值,{d} 表示百分比。
参数 font_size 用于定义字体大小,参数 font_weight 用于定义字体粗细,参数 color 用于定义字体颜色。
示例 1: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(label_opts=opts.LabelOpts(is_show=False))
# 渲染
line.render()
运行生成的 render.html,浏览器效果如下图所示。

分析:
is_show=False 表示把所有标签都隐藏了。虽然标签被隐藏了,但当鼠标移到节点时,还是可以显示该节点的数据信息的,如下图所示。

示例 2:Pyecharts 标签位置
import pandas as pd
from pyecharts.charts import Bar
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=['月份', '上衣', '裤子'])
# 绘图
bar = Bar()
bar.add_xaxis(xaxis_data=list(df['月份']))
# 第1种柱条
bar.add_yaxis(series_name='上衣', y_axis=list(df['上衣']))
# 第2种柱条
bar.add_yaxis(series_name='裤子', y_axis=list(df['裤子']))
# 改变方向
bar.reversal_axis()
# 渲染
bar.render()
运行生成的 render.html,浏览器效果如下图所示。

分析:
bar.reversal_axis() 表示将柱形图变成横向显示,此时就成了一个条形图。对于条形图来说,标签默认是居中显示的,这可能会导致部分标签看不清楚。我们可以使用 label_opts 参数将标签设置为 “靠右显示”,也就是添加下面这一句代码,此时效果如下图所示。
# 定义标签位置
bar.set_series_opts(label_opts=opts.LabelOpts(position='right'))

示例 3:Pyecharts 标签格式
import pandas as pd
from pyecharts.charts import Bar
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=['月份', '上衣', '裤子'])
# 绘图
bar = Bar()
bar.add_xaxis(xaxis_data=list(df['月份']))
# 第1种柱条
bar.add_yaxis(series_name='上衣', y_axis=list(df['上衣']))
# 第2种柱条
bar.add_yaxis(series_name='裤子', y_axis=list(df['裤子']))
# 定义标签格式
bar.set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c}'))
# 渲染
bar.render()
运行生成的 render.html,浏览器效果如下图所示。

分析:
对于 formatter 的取值,我们需要遵循一定的规则:{a} 表示系列名,{b} 表示数据名,{c} 表示数据值。
示例 4:Pyecharts 标签字体
import pandas as pd
from pyecharts.charts import Bar
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=['月份', '上衣', '裤子'])
# 绘图
bar = Bar()
bar.add_xaxis(xaxis_data=list(df['月份']))
# 第1种柱条
bar.add_yaxis(series_name='上衣', y_axis=list(df['上衣']))
# 第2种柱条
bar.add_yaxis(series_name='裤子', y_axis=list(df['裤子']))
# 定义标签格式
bar.set_series_opts(label_opts=opts.LabelOpts(
font_size=16,
font_weight='bold',
color='yellow'
))
# 渲染
bar.render()
运行生成的 render.html,浏览器效果如下图所示。

分析:
font_size=16 表示定义字体大小为 16 像素,font_weight='bold' 表示定义字体为粗体,color='orange' 表示定义字体颜色为橙色。
最后,对于全局设置和系列设置,我们可以总结一下它们之间的区别,主要有以下 2 点。
- 全局设置是针对所有图表而言,系列设置是针对部分图表而言。
- 全局设置是在 set_global_opts() 方法或绘图函数中进行设置,而系列设置是在 set_series_opts() 方法或 add_yaxis() 方法中进行设置。
