第一部分:实验背景

1.1 实验目的

本实验基于之前实验加工完成的用户画像统计表(user_profile_stats),完成浏览器用户画像分析大屏的静态布局设计、数据接入与交互配置。通过本实验,掌握:

- 根据用户画像分析需求,合理设计大屏的信息结构与叙事逻辑

- 理解不同图表类型在用户画像分析中的适用场景与分析价值

- 使用蓝图编辑器完成数据接入与筛选器联动配置

- 配置大屏切换、地图点击联动等高级交互功能

1.2 实验环境

- 实验平台:助睿在线实验平台 https://lab.guilian.cn/

- 数据科学平台:助睿数智(Uniplore)

- 可视化工具:助睿Max(数据大屏)

- 数据来源:团队私有数据库(MySQL)

1.3 实验数据

本实验使用上一阶段加工完成的`user_profile_stats` 表,表结构如下:

| 字段 | 类型 | 说明 |

|---|---|---|

| browser_name | VARCHAR(50) | 浏览器名称 |

| gender | VARCHAR(10) | 性别 |

| age | INT | 年龄 |

| age_group | VARCHAR(10) | 年龄段 |

| edu | VARCHAR(50) | 学历 |

| job | VARCHAR(50) | 职业 |

| income | VARCHAR(50) | 收入 |

| city_type | VARCHAR(10) | 居住地类型 |

| province | VARCHAR(50) | 省份 |

| user_count | INT | 用户数 |

---

第二部分:实验步骤

2.1.1 整体设计方案

大屏包含以下核心模块:

| 模块 | 子模块 | 指标项 | 组件 |

|---|---|---|---|

| 数据概览 | 用户概况 | 覆盖用户数、平均年龄、本科以上占比、中高收入占比 | 指标卡 |

| 基本信息 | 人口属性 | 性别分布、年龄分布、学历分布、职业分布、收入分布 | 饼图/柱状图 |

| 地域分布 | 地理信息 | 城市vs乡镇分布、用户省份分布、省份TOP5 | 饼图/地图/列表 |

| 筛选器 | 交互控制 | 浏览器选择 | 下拉多选 |

2.1.2 用户省份分布(中国地图)

1. 添加"基础平面地图"组件,设置好大小、位置

2. 添加"区域热力层"子组件

3. 配置颜色渐变、边界线宽、高亮样式等属性

2.1.3 核心指标

1. 添加4个"数字翻牌器"纵向排列

2. 每个翻牌器使用"单张图片"组件设置背景(背景图链接:https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/practice/browser-analysis/mbg.png)

3. 分别配置:用户总数、平均年龄、本科及以上占比、中高收入占比

2.1.4 用户数TOP5省份排行榜

1. 添加"单张图片"组件作为排行榜区域背景(背景图链接:https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/enrollment-data/top-list-bg.png)

2. 添加"通用标题"组件

3. 添加"轮播列表"组件,调整行高、列宽、字体、交替行背景色等样式

2.1.5 各维度分布图表

| 维度 | 图表类型 | 说明 |

|---|---|---|

| 性别分布 | 基础饼图 | 男/女用户占比 |

| 年龄段分布 | 基础柱图 | 按年龄段统计用户数 |

| 学历分布 | 水平基础柱图 | 按学历层次统计用户数 |

| 职业分布 | 基础柱图 | 按职业类别统计用户数 |

| 收入分布 | 水平基础柱图 | 按收入段统计用户数 |

| 居住地类型分布 | 轮播饼图 | 城市/城郊/乡村用户占比 |

2.1.6 筛选器配置

1. 在大屏顶部右侧添加"下拉选择"组件

2. 重命名为"浏览器筛选"

3. 配置6个浏览器选项(IE浏览器、Chrome浏览器等)

4. 设置默认选中"IE浏览器"

2.2.1 前置准备:添加年龄字段

1. 在团队私有数据库中执行SQL,重建 `user_profile_stats` 表,增加 `age` 字段

2. 修改"用户画像表加工"转换流:

- 修改排序记录组件,增加 age 字段的升序排序

- 修改分组组件,分组字段增加 age

- 执行转换流

2.2.2 组件导出到蓝图编辑器

将以下组件依次导出到蓝图编辑器:

- 浏览器筛选器(下拉多选)

- 性别分布饼图

- 年龄段分布柱状图

- 学历分布条形图

- 职业分布柱状图

- 收入分布柱状图

- 居住地类型饼图

- 用户省份分布地图

- 省份排行榜(轮播列表)

- 核心指标卡(总用户数、平均年龄、中高收入占比)

2.2.3 添加浏览器参数接收节点

1. 添加"并行数据处理"节点,重命名为"浏览器参数接收"

2. 添加两个处理方法:

- 方法一(页面加载时执行):设置基础URL

- 方法二(筛选器变化时执行):接收浏览器参数,存储到全局变量 `window.GLOBAL_SELECTED_BROWSER`

2.2.4 添加维度数据SQL请求节点

1. 添加"SQL请求"节点,重命名为"维度数据SQL请求"

2. 编写SQL,使用 UNION ALL 一次性查询所有维度数据(性别、年龄、学历、职业、收入、居住地类型、省份)

3. 输出格式:`(dimension_type, name, value)`

2.2.5 添加核心指标SQL请求节点

1. 添加"SQL请求"节点,重命名为"核心指标SQL请求"

2. 编写SQL,查询四个核心指标(总用户数、平均年龄、本科及以上占比、中高收入占比)

3. 使用 UNION ALL 输出多行格式

2.2.6 添加维度数据分发节点

1. 添加"并行数据处理"节点,重命名为"数据分发"

2. 为每个图表添加处理方法:

- 分支1:性别分布(饼图)- 过滤 dimension_type='gender'

- 分支2:年龄段分布(柱状图)- 过滤 dimension_type='age',按年龄段排序

- 分支3:学历分布(条形图)- 过滤 dimension_type='edu',按学历层次排序

- 分支4:职业分布(柱状图)- 过滤 dimension_type='job'

- 分支5:收入分布(柱状图)- 过滤 dimension_type='income',按收入金额排序

- 分支6:居住地类型分布(饼图)- 过滤 dimension_type='city_type'

- 分支7:省份排行榜TOP5 - 过滤 dimension_type='province',取前5条

2.2.7 添加核心指标分发节点

1. 添加"并行数据处理"节点,重命名为"核心指标分发"

2. 添加4个分支,分别过滤 total_users、avg_age、high_edu_ratio、high_income_ratio

3. 每个分支输出单个数值给对应指标卡

2.2.8 连接节点

按照蓝图连接示意图,依次连接所有节点:

- 页面加载 → 浏览器参数接收(输入)

- 浏览器筛选器 → 浏览器参数接收(输入)

- 浏览器筛选器 → 维度数据SQL请求(执行SQL)

- 浏览器筛选器 → 核心指标SQL请求(执行SQL)

- 维度数据SQL请求(执行成功) → 维度数据分发(输入)

- 核心指标SQL请求(执行成功) → 核心指标分发(输入)

- 维度数据分发(分支1-8) → 各维度图表组件(导入数据接口)

- 核心指标分发(分支1-4) → 四个核心指标卡(导入数据接口)

2.3.1 配置大屏切换

1. 添加Tab列表组件,设置行数为1,列数为2

2. 将背景色、选中背景色、悬浮背景色的透明度设置为0(透明)

3. 设置两列数据,id分别为1、2,content为空

4. 将"市场分析"组、"用户画像"组、Tab列表组件导出到蓝图编辑器

5. 添加"分支判断"节点,判断条件:`return data.id == 1;`

6. 满足分支:设置"市场分析组"显示,"用户画像组"隐藏

7. 不满足分支:设置"市场分析组"隐藏,"用户画像组"显示

2.3.2 配置地图省份点击联动

1. 提取地区名称(并行数据处理):

- 接收地图点击事件输出的 data 对象

- 通过映射表将省份全称转换为数据表中的简称

- 存储到全局变量 `window.globalProvinceName`

2. 省份核心指标查询(SQL请求):

- 根据 `window.GLOBAL_SELECTED_BROWSER` 和 `window.globalProvinceName` 查询数据

- 使用 UNION ALL 输出四个核心指标

3. 省份核心指标分发(并行数据处理):

- 按 name 字段过滤,将每个指标单独输出

- 分别连接到四个核心指标卡

2.3.3 地图热力层根据用户数渲染颜色

1. 提取 adcode 映射表(并行数据处理):

- 从地图组件内置的 GeoJSON 中提取每个省份的 adcode 和标准名称

- 建立映射表 `globalProvinceAdcode`

2. 查询所有省份的用户数(SQL请求):

- 根据当前选中的浏览器,统计每个省份的用户总数

- 按用户数降序排列

3. 地图数据映射(并行数据处理):

- 将 SQL 查询结果中的省份名称与 adcode 映射表匹配

- 输出格式 `{ name, value, area_id }`

4. 导入地图热力层:

- 将映射后的数据导入"区域热力层"子组件的"导入热力值数据接口"

第三部分:实验结果

3.1 静态布局完成结果

- ✅ 大屏整体布局完成,包含10个功能模块

- ✅ 所有图表组件配置完成,样式统一

- ✅ 图层管理完成,市场分析与用户画像两组内容共存

3.2 数据接入完成结果

- ✅ 所有图表成功接入真实数据

- ✅ 浏览器筛选器联动正常,切换浏览器时所有图表自动刷新

- ✅ 数据格式正确,各图表展示符合预期

3.3 交互功能完成结果

- ✅ 大屏切换功能正常,点击tab可在市场分析与用户画像之间切换

- ✅ 地图省份点击联动正常,点击省份后核心指标卡自动更新

- ✅ 地图热力层渲染正常,颜色深浅反映用户数多少

3.4 数据验证结果

- 总用户数:[根据实际查询结果填写]

- 平均年龄:[根据实际查询结果填写]

- 本科及以上占比:[根据实际查询结果填写]

- 中高收入占比:[根据实际查询结果填写]

- 用户数TOP5省份:[根据实际查询结果填写]

---

第四部分:问题与解决

4.1 问题1:计算器组件plus函数报错

问题描述:

```

The 'plus' function only works on numeric data and Strings.

```

问题原因:

- 未在「计算」列选择具体的计算函数,Hop默认尝试加法运算

- 字段A选错(选了session_id而非时间字段)

- 类型不匹配导致加法运算失败

解决方案:

- 在「计算」列选择「日期 A 的一天中的小时」函数

- 字段A选择 `session_start_time`(会话开始时间字段)

- 值类型设置为 Integer

解决结果:Pipeline成功运行,处理118,293条数据,错误数为0。

4.2 问题2:省份名称不匹配

问题描述:地图点击后返回的省份名称是全称(如"江苏省"、"广西壮族自治区"),但数据表中存储的是简称("江苏"、"广西"),导致SQL查询无结果。

解决方案:

- 添加省份名称映射处理

- 建立特殊映射表处理直辖市、自治区、特别行政区

- 通用处理:去除末尾的"省"、"自治区"、"市"

解决结果:所有省份点击均能正确查询到对应数据。

4.3 问题3:地图热力层颜色不显示

问题描述:地图组件加载后,省份颜色没有根据用户数渲染深浅。

问题原因:缺少adcode 映射,热力层数据格式不正确。

解决方案:

- 从地图GeoJSON中提取 adcode 映射表

- 将省份名称与 adcode 匹配,生成 `{ name, value, area_id }` 格式

- 导入到区域热力层的"导入热力值数据接口"

解决结果:地图热力层正常渲染,颜色深浅正确反映用户数多少。

---

第五部分:实验总结

5.1 收获

1. 大屏设计能力:掌握了数据大屏的信息架构设计,理解了不同图表类型的适用场景

2. 数据接入能力:学会了使用蓝图编辑器进行数据接入,掌握了并行数据处理、SQL请求、数据分发等核心节点的使用

3. 交互配置能力:掌握了大屏切换、地图点击联动、热力层渲染等高级交互功能的配置方法

4. 问题排查能力:学会了分析和解决ETL流程、数据接入、交互配置中的常见问题

5.2 不足

1. 对蓝图编辑器的高级功能(如条件分支、循环处理)了解还不够深入

2. SQL查询优化能力有待提升,当前使用UNION ALL的方式在数据量大时可能性能不足

3. 大屏视觉设计还可以进一步优化,如动画效果、配色方案等

5.3 改进方向

1. 深入学习蓝图编辑器的所有节点功能,掌握更复杂的交互逻辑

2. 学习SQL性能优化技巧,提升大数据量下的查询效率

3. 学习数据可视化设计原则,提升大屏的视觉表现力和用户体验

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐