























核心思想: 最大化数据墨水,最小化非数据墨水。
| 元素 | 建议 |
|---|---|
| 背景 | 使用浅色或透明 |
| 网格线 | 减少或移除 |
| 边框 | 仅在必要时使用 |
| 颜色 | 用于区分,而非装饰 |
✅ 一图一信息
✅ 突出关键数据
✅ 使用熟悉的图表类型
✅ 合理排序(数值/时间/字母)
❌ 过多切片器
❌ 3D 图表
❌ 过多颜色
❌ 无意义的装饰
将数据按类别拆分为多个小图表:
应用场景:
配置要点:
小多图设置:
- 列:Product[Category]
- 行:Region[RegionName]
- 数量限制:建议 ≤ 20 个小图
- 轴范围:统一(便于对比)
用于展示目标达成情况:
┌─────────────────────────────┐
│ 实际值 ████████████░░ 75% │
│ 目标值 ─────────── │
│ 区域 ████████░░░░░ 60% │
└─────────────────────────────┘
DAX 实现:
目标达成率 =
VAR Actual = [销售额]
VAR Target = [销售目标]
RETURN
DIVIDE(Actual, Target)
目标差异 = [销售额] - [销售目标]
展示流向与转化:
使用 Power BI 视觉对象: "Sankey Chart"(自定义视觉对象)
数据准备:
Source Destination Value
---------------------------------
访问首页 浏览商品 10000
浏览商品 加入购物车 3000
加入购物车 完成支付 1500
// 销售状态颜色
状态颜色 =
VAR Ratio = [目标达成率]
RETURN
SWITCH(
TRUE(),
Ratio >= 1, "#28A745", // 绿色 - 达成
Ratio >= 0.8, "#FFC107", // 黄色 - 接近
Ratio >= 0.6, "#FD7E14", // 橙色 - 需关注
"#DC3545" // 红色 - 未达标
)
应用方式:
状态颜色 度量数据条配置:
- 最小值:0
- 最大值:[最大销售额]
- 颜色:渐变或固定
图标集:
- ↑ 绿色:增长 > 10%
- → 黄色:增长 -10% ~ 10%
- ↓ 红色:下降 > 10%
// 动态图表标题
图表标题 =
VAR SelectedCategory = SELECTEDVALUE(Product[Category])
VAR SelectedRegion = SELECTEDVALUE(Region[RegionName])
RETURN
"销售分析" &
IF(NOT ISBLANK(SelectedCategory), " - " & SelectedCategory, "") &
IF(NOT ISBLANK(SelectedRegion), " (" & SelectedRegion & ")", "")
配置步骤:
钻取字段示例:
钻取层级:
Date[Year] → Date[Quarter] → Date[Month]
Product[Category] → Product[SubCategory]
Region[Region] → Region[City]
钻取页面传递度量:
// 在钻取目标页使用
钻取产品 = SELECTEDVALUE(Product[ProductName])
钻取金额 = [销售额]
高级工具提示配置:
动态工具提示内容:
工具提示内容 =
"销售额:" & FORMAT([销售额], "#,##0") & UNICHAR(10) &
"环比:" & FORMAT([环比增长], "0.0%") & UNICHAR(10) &
"排名:" & [排名]
书签配置:
书签类型:
1. 数据书签 - 保存筛选状态
2. 视觉书签 - 保存视觉属性
3. 所有书签 - 保存全部状态
按钮动作:
按钮类型:
- 书签导航:跳转到指定书签
- 页面导航:切换报表页面
- 切片器重置:清除所有筛选
- Q&A:打开自然语言查询
使用 JSON 语法定义图表:
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"data": {"values": []},
"mark": "bar",
"encoding": {
"x": {"field": "Category", "type": "nominal"},
"y": {"field": "Amount", "type": "quantitative"},
"color": {"field": "Category", "type": "nominal"}
}
}
优势:
自定义 HTML 渲染:
<!-- KPI 卡片 -->
<div style="text-align: center; padding: 20px;">
<h2 style="color: #333;">{title}</h2>
<p style="font-size: 36px; color: {color};">{value}</p>
<p style="color: #666;">{subtitle}</p>
</div>
交互式图表设计器,无需代码。
┌────────────────────────────────────────┐
│ 标题/Logo 筛选区域(右上) │
├────────────────────────────────────────┤
│ │
│ 主视觉区域(关键指标) │
│ │
├───────────────────┬────────────────────┤
│ │ │
│ 左侧详情图表 │ 右侧补充图表 │
│ │ │
├───────────────────┴────────────────────┤
│ 底部数据表格/趋势 │
└────────────────────────────────────────┘
| 元素 | 建议值 |
|---|---|
| 页边距 | 12-16px |
| 组件间距 | 8-12px |
| 组件内边距 | 8-12px |
| 对齐方式 | 网格对齐 |
配置要点:
根据条件显示/隐藏视觉对象:
// 显示条件
显示详情 =
VAR SelectedProduct = SELECTEDVALUE(Product[ProductID])
RETURN
IF(NOT ISBLANK(SelectedProduct), 1, 0)
配置: 选择窗格 → 视觉对象 → 条件格式 → 可见性
使用 What-If 参数:
// 动态阈值筛选
高价值订单 =
VAR Threshold = SELECTEDVALUE(Parameter[Threshold])
RETURN
CALCULATE(
COUNTROWS(Sales),
Sales[Amount] >= Threshold
)
使用书签和按钮实现:
| 场景 | 建议 |
|---|---|
| 单页视觉对象 | ≤ 15 个 |
| 数据点总数 | ≤ 10,000 |
| 切片器选项 | ≤ 100 |
// 限制显示行数
TOPN 显示 =
CALCULATETABLE(
TOPN(100, Sales, Sales[Amount], DESC),
ALLSELECTED(Sales)
)
文件 → 选项 → 数据加载:
✅ 报表视觉对象首次加载后禁用
本篇介绍了高级可视化技术:
| 主题 | 要点 |
|---|---|
| 设计原则 | 数据墨水比、认知负荷 |
| 高级图表 | 小多图、子弹图、桑基图 |
| 条件格式 | 基于度量、动态颜色 |
| 交互设计 | 钻取、工具提示、书签 |
| 自定义视觉 | Deneb、HTML Content |
| 性能优化 | 减少视觉对象、限制数据点 |
下一篇,我们将深入 Power Query 高级数据处理。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。