页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

Python组件支持编写代码自定义复杂的数据可视化效果,灵活拓展分析展示能力。另外,也可以在使用AIChat问数过程中,将高频数据问答结果一键转化为仪表盘的Python组件,生成主题看板。


注意

Python组件加载需依赖AIChat,部署手册详见:Smartbi AIChat(白泽)运维手册

2 业务场景

2.1 自定义复杂组件

1、场景描述:通过编写Python代码自定义复杂的数据可视化效果。

...

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

Image Removed

示例的Python代码如下:

(3)点击 运行 ,可查看效果:

信息

Python组件当前仅支持通过接口获取动态数据,或在代码中写静态数据。

Image Added

绑定筛选器
绑定筛选器
(4)如果是通过接口获取数据,可以绑定仪表盘的筛选器组件,实现过滤数据的效果,操作如下:

  • 添加一个筛选器组件到画布中,并为该筛选器组件绑定字段,如下图所示:

   如果想要数据能正常联动,所选字段需选择和Python代码中同一来源的数据。

Image Added

  • 设置筛选器组件 应用于 此Python组件,如下图所示:

Image Added

  • 点击 Image Added图标,编辑Python代码,在查询代码中增加绑定筛选器内容,需填入 筛选器名称 ,如下图所示:

 Image Added

Image Added

  • 切换筛选器选中值即可查看过滤数据效果,如下图所示:

Image Added

  • 如果想要删除筛选器组件对Python组件的影响,则在Python代码中去掉绑定筛选器的内容,并设置筛选器不应用于Python组件即可。

(5)示例的Python代码如下:

代码块
languagepy
linenumberstrue
collapsetrue
import plotly.graph_objects as go

# 查询2019年各车系的销量、车型数以及同比情况查询各车系的销量情况
sql_json = {
"sel": ["车系", "销量", "车型数", "销量同比增长率", "车型数同比增长率"],
"conds": [${年}], "from": "即席查询"
}
df_car_2019series_sales = detail_trend_data_query_assistant(sql_json)

# 创建联合图展示用柱形图展示数据
fig = go.Figure()

# 添加销量柱状图
fig.add_trace(
go.Bar(
    x=df_car_2019series_sales['车系'],
    y=df_2019car_series_sales['销量'],
name='销量', marker_color='blue' ) ) 
# 添加车型数柱状图
fig.add_trace(
go.Bar(
x=df_2019['车系'],
y=df_2019['车型数'],
name='车型数',
marker_color='green'销量'
)
)

# 添加销量同比增长率折线图设置图表标题和轴标签
fig.addupdate_tracelayout(
go.Scatter(
x=df_2019['车系'], y=df_2019['销量同比增长率'], mode='lines+markers', name='销量同比增长率',
yaxis title='y2各车系销量情况',
line=dict(color='red') ) )  # 添加车型数同比增长率折线图
fig.add_trace(
go.Scatter(
x=df_2019[xaxis_title='车系'],
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'
),

    yaxis_title='销量',
    title_x=0.5  # 标题居中
)

# 输出结果
import json

json_result = json.dumps([{"output_variable_name": "fig", "type": "plotly", "desc": "联合图展示2019年各车系销量、车型数及同比情况各车系销量柱形图"}])
json_result


信息

● Python组件当前仅支持通过接口获取动态数据,或在代码中写静态数据。

示例代码仅作为参考示例,代码中的查询语句需要根据实际的环境数据去修改。

(3)点击 运行 ,可查看效果:

...

(4)如果是通过接口获取数据,可以在Python代码中绑定仪表盘

2.2 添加AI问数结果到仪表盘中

1、场景描述:在使用AIChat问数过程中,将高频数据问答结果一键转化为仪表盘的Python组件,生成主题看板。

...

(3)点击 添加到仪表盘 按钮,将问数结果添加到仪表盘中,如下图所示:

  • 将问数结果的条件转换成仪表盘的筛选器组件
  • 问数的图文内容转换成仪表盘的Python组件,支持点击 图标,编辑Python代码变更Python组件效果
  • 支持切换筛选器的选中值,刷新Python组件的数据

...

  • 将问数结果的条件转换成仪表盘的筛选器组件。
  • 问数的图文内容转换成仪表盘的Python组件,支持点击 Image Added 图标,编辑Python代码变更Python组件效果。
  • 支持切换筛选器的选中值,刷新Python组件的数据。

Image Added

(4)问数结果在仪表盘中生成Python组件后,和仪表盘本身手动添加的Python组件一样,支持增删绑定的筛选器,操作详见本文2.1章节:绑定筛选器

如当前的示例,增加一个 车系 筛选器,最终效果如下图所示:

Image Added

3 更多功能

  • 更多的组件属性设置项的详细介绍,可参考文档: 组件设置 。

...