0Pricing
Python Academy · 课时

仪表板概念

将图表组合成仪表板

仪表板概念 是 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. Plotly Express 基础
  2. 交互功能
  3. 仪表板概念
  4. 导出与嵌入
← 返回 Python Academy