仪表板概念
将图表组合成仪表板
仪表板概念 是 CoddyKit 上的免费 Python Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。
从图表到仪表板
一张图表回答一个问题。一个仪表板会将几张相关图表组合在一起,让查看者一眼掌握整体情况。
构建仪表板意味着要决定哪些图表应当放在一起、如何排列它们,以及它们之间如何关联。
Plotly 中的子图
要将多个 Plotly 图表放入一个图表中,请使用 plotly.subplots 中的 make_subplots(rows, cols)。然后使用 fig.add_trace(trace, row=1, col=2) 将每条数据轨迹添加到指定单元格。
这相当于 Plotly 版本的 Matplotlib 子图网格。
规划网格
编写代码前,先画出网格草图。决定有多少行和列,以及每个单元格放置什么内容。相关计算与任何网格布局都相同。
panels = ['Revenue trend', 'Top products', 'Region map', 'Conversion %']
rows, cols = 2, 2
for i, p in enumerate(panels):
r = i // cols + 1
c = i % cols + 1
print('row', r, 'col', c, '->', p)混合图表类型
仪表板通常会混合多种类型:用折线图表示趋势,用柱状图表示排名,用一个数字表示关键指标。make_subplots 可以容纳所有这些类型,您还可以通过 specs 参数设置每个单元格的类型(例如,饼图需要 type='domain')。
KPI 卡片
仪表板通常从几个醒目的单独数字开始,这些就是 KPI 指标。Plotly 的 Indicator 数据轨迹可以显示一个数值、可选的相对于目标的差值,以及一个仪表盘。
差值就是当前值减去前一个值。
current = 1280
previous = 1150
delta = current - previous
pct = delta / previous * 100
print('Value:', current)
print('Delta:', '+' + str(delta), '(' + format(pct, '.1f') + '%)')共享标题和布局
使用 fig.update_layout(title_text='Sales Dashboard') 为仪表板设置一个总标题,并通过 make_subplots 的 subplot_titles 参数设置每个面板的标题。统一的布局会让各个面板感觉像同一个产品。
用于网页仪表板的 Dash
对于带有下拉菜单和筛选器的交互式网页仪表板,Plotly 的配套框架 Dash 是标准选择。它将 Plotly 图表与 HTML 控件和回调结合起来,在输入发生变化时更新图表。
对于报告,静态子图组合图已经足够;实时应用则应使用 Dash。
回调:核心思路
Dash 回调会将输入(如下拉菜单的值)映射到输出(如图表)。输入发生变化时,函数会重新运行并返回一个新图表。其模式就是输入进,图表出。
def update_chart(selected_region):
data = {'North': [1, 2, 3], 'South': [3, 2, 1]}
series = data.get(selected_region, [])
return {'region': selected_region, 'values': series}
print(update_chart('North'))
print(update_chart('South'))布局原则
优秀的仪表板遵循清晰的层次结构:
- 将最重要的 KPI 指标放在左上方,因为视线首先会落在那里
- 在下方放置用于补充说明的细节图表
- 使用一致的颜色,让同一数据系列在任何位置都表示相同含义
避免塞得过满;留白有助于理解。
关注性能
大量图表和大型数据集会使仪表板变慢。绘图前先聚合数据,限制数据点数量,并且只重新计算输入发生变化的面板。响应迅速的仪表板会被使用,缓慢的则会被弃用。
筛选器与交叉筛选
高级仪表板允许一次选择同时更新多张图表,这称为交叉筛选。点击地图上的某个区域后,趋势面板和排名面板都会筛选到该区域。
在 Dash 中,这通过回调连接起来;所选值会成为所有依赖图表读取的输入。
快速检查
测试您对仪表板概念的理解。
回顾
您学到了如何将图表组合成仪表板:
- 使用
make_subplots(rows, cols)+add_trace(..., row=, col=)创建网格 - 混合图表类型,并以 KPI
Indicator卡片作为开头 - Dash 通过输入到图表的回调添加交互式控件
- 遵循视觉层次结构并关注性能
常见问题解答
「仪表板概念」课时是免费的吗?
是的 — 「仪表板概念」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。
「仪表板概念」这节课中我会学到什么?
将图表组合成仪表板 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Python Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「仪表板概念」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Python Academy 课中编写并运行代码吗?
能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。