1 概述
Python组件支持编写代码自定义复杂的数据可视化效果,灵活拓展分析展示能力。另外,也可以在使用AIChat问数过程中,将高频数据问答结果一键转化为仪表盘的Python组件,生成主题看板。
2 业务场景
2.1 自定义复杂组件
1、场景描述:通过编写Python代码自定义复杂的数据可视化效果。
2、操作步骤
(1)在仪表盘的组件中,点击 + 添加 Python 组件,如下图所示:

(2)在代码编辑器中,输入所需的Python代码,如下图所示:

示例的Python代码如下:
import plotly.graph_objects as go
# 查询2019年各车系的销量、车型数以及同比情况
sql_json = {
"sel": ["车系", "销量", "车型数", "销量同比增长率", "车型数同比增长率"],
"conds": [${年}],
"from": "即席查询"
}
df_2019 = detail_trend_data_query_assistant(sql_json)
# 创建联合图展示
fig = go.Figure()
# 添加销量柱状图
fig.add_trace(
go.Bar(
x=df_2019['车系'],
y=df_2019['销量'],
name='销量',
marker_color='blue'
)
)
# 添加车型数柱状图
fig.add_trace(
go.Bar(
x=df_2019['车系'],
y=df_2019['车型数'],
name='车型数',
marker_color='green'
)
)
# 添加销量同比增长率折线图
fig.add_trace(
go.Scatter(
x=df_2019['车系'],
y=df_2019['销量同比增长率'],
mode='lines+markers',
name='销量同比增长率',
yaxis='y2',
line=dict(color='red')
)
)
# 添加车型数同比增长率折线图
fig.add_trace(
go.Scatter(
x=df_2019['车系'],
y=df_2019['车型数同比增长率'],
mode='lines+markers',
name='车型数同比增长率',
yaxis='y2',
line=dict(color='orange')
)
)
# 设置布局
fig.update_layout(
title="2019年各车系销量、车型数及同比情况",
xaxis=dict(title="车系"),
yaxis=dict(title="销量/车型数"),
yaxis2=dict(
title="同比增长率",
overlaying='y',
side='right'
),
title_x=0.5
)
import json
json_result = json.dumps([{"output_variable_name": "fig", "type": "plotly", "desc": "联合图展示2019年各车系销量、车型数及同比情况"}])
json_result
(3)点击 运行 ,可查看效果:

2.2 添加AI问数结果到仪表盘中
1、场景描述:在使用AIChat问数过程中,将高频数据问答结果一键转化为仪表盘的Python组件,生成主题看板。
2、操作步骤
(1)将AI问数结果添加到仪表盘的操作入口有两个,如下图所示:


(2)输入问句,得到问数结果,如下图所示,AIChat的使用说明详见:AIChat 白泽帮助中心。

(3)点击 添加到仪表盘 按钮,将问数结果添加到仪表盘中,如下图所示:
- 将问数结果的条件转换成仪表盘的筛选器组件
- 问数的图文内容转换成仪表盘的Python组件,支持点击 图标,编辑Python代码变更Python组件效果
- 支持切换筛选器的选中值,刷新Python组件的数据

3 更多功能
- 更多的组件属性设置项的详细介绍,可参考文档: 组件设置 。
4 注意事项
1、不支持多选问数结果插入到仪表盘。
2、Python组件本身不支持绑定字段,仅支持通过接口获取动态数据,或在代码中写静态数据。

3、Python组件编辑器不支持Ctrl+F搜索。
4、仅支持将 分析模式 下的问数结果添加到仪表盘中,不支持专家模式、不支持报表查询模式。
5、Python组件内容样式,仅支持通过Python代码修改,仪表盘无相关的样式设置项。