pyecharts v1.x set_global_opts / set_series_opts 参数
一句话区分: set_global_opts:全局组件(标题、图例、坐标轴、缩放、工具箱),作用于整张图表 set_series_opts:系列数据样式(线条、标签、标记点/线、图形填充),作用于所有 series 系列
from pyecharts import options as opts
一、set_global_opts 全部入参
def set_global_opts(
title_opts: TitleOpts = None, # 标题+副标题
legend_opts: LegendOpts = None, # 图例
tooltip_opts: TooltipOpts = None, # 全局提示框
toolbox_opts: ToolboxOpts = None, # 右上角工具箱(下载、刷新、数据视图)
xaxis_opts: AxisOpts = None, # X轴配置(直角坐标系图表:Line/Bar)
yaxis_opts: AxisOpts = None, # Y轴配置
datazoom_opts: List[DataZoomOpts] = None, # 区域缩放,可传多个
visualmap_opts: VisualMapOpts = None, # 视觉映射(颜色渐变,热力图/地图)
axispointer_opts: AxisPointerOpts = None, # 坐标轴指示器
graphic_opts: List[GraphicOpts] = None, # 自定义图形、文字、图片
brush_opts: BrushOpts = None, # 框选刷选组件
polar_opts: PolarOpts = None, # 极坐标系配置(雷达图)
radiusaxis_opts: RadiusAxisOpts = None, # 极坐标径向轴
angleaxis_opts: AngleAxisOpts = None, # 极坐标角度轴
singleaxis_opts: SingleAxisOpts = None, # 单轴(一维散点)
calendar_opts: CalendarOpts = None, # 日历图配置
geo_opts: GeoOpts = None, # Geo地理坐标系
map3d_opts: Map3DOpts = None, # 3D地图
globe_opts: GlobeOpts = None, # 地球3D
parallel_opts: ParallelOpts = None, # 平行坐标系
parallelaxis_opts: List[ParallelAxisOpts] = None,
animation_opts: AnimationOpts = None, # 全局动画
# 还有部分小众图表专属参数,一般极少用到
**kwargs
):
常用子配置类(传参示例)
title_opts=opts.TitleOpts(title="主标题", subtitle="副标题")legend_opts=opts.LegendOpts(pos_top="5%")tooltip_opts=opts.TooltipOpts(trigger="axis")datazoom_opts=[opts.DataZoomOpts(range_start=0, range_end=100)]visualmap_opts=opts.VisualMapOpts(max_=100)

二、set_series_opts 全部入参
对所有
add_yaxis添加的系列生效;也可以在单独 add_yaxis 里单独指定系列配置,优先级更高
def set_series_opts(
label_opts: LabelOpts = None, # 数据标签(柱子/折线点上的文字)
linestyle_opts: LineStyleOpts = None, # 线条样式(折线、标记线)
areastyle_opts: AreaStyleOpts = None, # 填充区域(折线图面积填充)
itemstyle_opts: ItemStyleOpts = None, # 图元样式:柱子、扇区、圆点颜色/边框
markpoint_opts: MarkPointOpts = None, # 标记点:最大值、最小值、自定义点
markline_opts: MarkLineOpts = None, # 标记线:平均线、阈值线
markarea_opts: MarkAreaOpts = None, # 标记区域
effect_opts: EffectOpts = None, # 涟漪特效(EffectScatter 动态涟漪点)
tooltip_opts: TooltipOpts = None, # 系列内提示框(优先级高于全局tooltip)
splitline_opts: SplitLineOpts = None, # 分割线
splitarea_opts: SplitAreaOpts = None, # 分割区域背景
axisline_opts: AxisLineOpts = None,
axistick_opts: AxisTickOpts = None,
**kwargs
):
常用子配置示例
set_series_opts(
label_opts=opts.LabelOpts(is_show=True, formatter="{c}"),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max")]),
linestyle_opts=opts.LineStyleOpts(width=2, color="red"),
itemstyle_opts=opts.ItemStyleOpts(color="#2f4554")
)
三、快速对比
| 项目 | set_global_opts | set_series_opts |
|---|---|---|
| 控制对象 | 图表全局组件 | 图表数据系列(series) |
| 典型参数 | title、legend、xaxis、datazoom、visualmap | label、itemstyle、linestyle、markpoint、markline |
| 作用范围 | 整张图 | 所有数据系列 |
四、最简完整示例
from pyecharts import options as opts
from pyecharts.charts import Bar
c = (
Bar()
.add_xaxis(["A","B","C"])
.add_yaxis("数据", [5,2,8])
.set_global_opts(
title_opts=opts.TitleOpts(title="全局标题"),
xaxis_opts=opts.AxisOpts(name="X轴"),
yaxis_opts=opts.AxisOpts(name="Y轴"),
)
.set_series_opts(
label_opts=opts.LabelOpts(is_show=True),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max")])
)
)
# c.render()
如果你需要,我可以:
- 把每个子Opts(TitleOpts、LabelOpts等)内部的所有属性完整列出来;
- 或者给你一个可直接复制的配置模板。
补充:常用子Opts完整参数清单(pyecharts v1.x)
只整理日常开发高频的,冷门参数省略。
一、set_global_opts 下属常用配置类
1. TitleOpts 标题
opts.TitleOpts(
title="主标题",
subtitle="副标题",
pos_left="center", # left/center/right 或百分比
pos_top="5%",
title_textstyle_opts=opts.TextStyleOpts(color="#333", font_size=16),
subtitle_textstyle_opts=opts.TextStyleOpts(color="#666", font_size=12),
)
2. LegendOpts 图例
opts.LegendOpts(
is_show=True,
pos_left="left",
pos_top="top",
orient="horizontal", # horizontal横向 / vertical纵向
textstyle_opts=opts.TextStyleOpts(font_size=12),
)
3. TooltipOpts 全局提示框
opts.TooltipOpts(
is_show=True,
trigger="axis", # item:单个图形触发;axis:坐标轴触发(折线/柱状常用)
trigger_on="mousemove",
formatter="{b}: {c}", # 自定义格式 {a}系列名 {b}类目 {c}数值
axis_pointer_type="cross", # cross十字 / line直线 / shadow阴影
)
4. AxisOpts 坐标轴(xaxis_opts / yaxis_opts)
opts.AxisOpts(
name="坐标轴名称",
name_location="middle",
name_textstyle_opts=opts.TextStyleOpts(),
is_show=True,
type_="category", # category类目轴 / value数值轴 / time时间轴 / log对数轴
boundary_gap=True,
axisline_opts=opts.AxisLineOpts(), # 轴线
axistick_opts=opts.AxisTickOpts(), # 刻度
axislabel_opts=opts.LabelOpts(), # 轴文字标签
splitline_opts=opts.SplitLineOpts(is_show=True), # 网格分割线
splitarea_opts=opts.SplitAreaOpts(), # 分割背景区域
min_=None,
max_=None,
)
5. DataZoomOpts 缩放滑块
opts.DataZoomOpts(
type_="slider", # slider滑块 / inside内置(鼠标滚轮)
range_start=0,
range_end=100,
orient="horizontal",
pos_bottom="5%",
)
6. VisualMapOpts 视觉映射(地图、热力图)
opts.VisualMapOpts(
is_show=True,
max_=100,
min_=0,
range_color=["#e0f7fa","#006064"],
orient="vertical",
pos_right="5%",
pos_top="middle",
)
7. ToolboxOpts 右上角工具箱
opts.ToolboxOpts(
is_show=True,
feature={
"saveAsImage": {}, # 下载图片
"dataView": {}, # 数据视图
"restore": {}, # 重置
"dataZoom": {},
}
)
二、set_series_opts 下属常用配置类
1. LabelOpts 数据标签(柱子/折点文字)
opts.LabelOpts(
is_show=True,
position="top", # top/bottom/inside/left/right
formatter="{c}",
font_size=12,
color="#000",
rotate=0,
)
2. ItemStyleOpts 图元样式(柱子、饼扇区、散点圆点)
opts.ItemStyleOpts(
color="auto",
border_color="#000",
border_width=1,
opacity=0.8,
)
3. LineStyleOpts 线条样式(折线、标记线)
opts.LineStyleOpts(
color="#254b9c",
width=2,
type_="solid", # solid实线 dashed虚线 dotted点线
opacity=0.9,
)
4. AreaStyleOpts 区域填充(折线面积图)
opts.AreaStyleOpts(
color="#254b9c",
opacity=0.3
)
5. MarkPointOpts 标记点(最大/最小值)
opts.MarkPointOpts(
data=[
opts.MarkPointItem(type_="max", name="最大值"),
opts.MarkPointItem(type_="min", name="最小值"),
# 自定义坐标:opts.MarkPointItem(name="自定义", coord=["A", 10])
]
)
6. MarkLineOpts 标记线(平均线、阈值线)
opts.MarkLineOpts(
data=[
opts.MarkLineItem(type_="average", name="平均值"),
# opts.MarkLineItem(y=60, name="警戒线")
]
)
7. MarkAreaOpts 标记区域
opts.MarkAreaOpts(
data=[opts.MarkAreaItem(name="区间", x=("A","B"))]
)
完整可运行模板(折线图示例,全局+系列一起配置)
from pyecharts import options as opts
from pyecharts.charts import Line
line = (
Line()
.add_xaxis(["周一", "周二", "周三", "周四", "周五"])
.add_yaxis("销量", [120, 200, 150, 80, 70])
# ========== 全局配置 ==========
.set_global_opts(
title_opts=opts.TitleOpts(title="周销量折线图", subtitle="2026"),
legend_opts=opts.LegendOpts(pos_top="3%"),
tooltip_opts=opts.TooltipOpts(trigger="axis"),
xaxis_opts=opts.AxisOpts(name="星期"),
yaxis_opts=opts.AxisOpts(name="销量", splitline_opts=opts.SplitLineOpts(is_show=True)),
datazoom_opts=[opts.DataZoomOpts(type_="inside")]
)
# ========== 系列配置 ==========
.set_series_opts(
label_opts=opts.LabelOpts(is_show=True, position="top"),
linestyle_opts=opts.LineStyleOpts(width=2, type_="solid"),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max"),opts.MarkPointItem(type_="min")]),
markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")])
)
)
line.render("line_demo.html")
优先级规则(很重要)
add_yaxis(..., series_opts=opts.SeriesOpts(...))单独系列配置 >set_series_opts()set_series_opts()>set_global_opts()也就是说:单独给某一条曲线设置的样式,优先级最高,会覆盖 set_series_opts 全局系列配置。
接下来想练哪个方向?
- 饼图/柱状图/地图 专属配置示例
- formatter 复杂字符串模板(带换行、多值)
- 主题、颜色、异步JS事件
- 或者直接封装一个通用pyecharts绘图函数?