0Pricing
Python Academy · 课时

Plotly Express 基础

快速创建图表

Plotly Express 基础 是 CoddyKit 上的免费 Python Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。

什么是 Plotly Express

Plotly Express(导入时使用 px)是一个高级接口,只需很少代码就能创建交互式图表。一次函数调用通常就能生成完整且精美的图形。

Matplotlib 默认是静态的,而 Plotly 图形具有交互性:您可以在浏览器中悬停、缩放和平移。

整洁数据理念

Plotly Express 最适合使用整洁数据:每一行是一个观测值,每一列是一个变量。然后,您可以指定列,将它们映射到图表特征上。

我们可以将整洁数据集表示为字典列表。

rows = [
    {'country': 'A', 'year': 2020, 'gdp': 100},
    {'country': 'A', 'year': 2021, 'gdp': 110},
    {'country': 'B', 'year': 2020, 'gdp': 80},
]
for r in rows:
    print(r['country'], r['year'], r['gdp'])

您的第一个图表

绘制折线图只需一次调用:px.line(df, x='year', y='gdp', color='country')。color 参数会自动将数据拆分成每个国家一条折线,并创建图例。

无需手动遍历数据系列。

常用 Express 函数

每种图表类型都有对应的函数:

  • px.line 趋势图
  • px.bar 类别比较图
  • px.scatter 关系图
  • px.histogram 分布图
  • px.pie 构成整体的各部分

它们都采用相同的列映射方式。

将列映射为视觉编码

Express 的强大之处在于将列映射到视觉通道:x、y、color、size、symbol 和 facet_col。每个参数都接收一个列名。

决定每一列放在哪里,是最主要的设计决策。

encodings = {'x': 'year', 'y': 'gdp', 'color': 'country', 'size': 'population'}
for channel, column in encodings.items():
    print(channel.ljust(6), '<-', column)

按颜色和大小绘制散点图

一次散点图调用就能显示四个变量:px.scatter(df, x='gdp', y='life', color='continent', size='population')。著名的 Gapminder 气泡图就是用一行代码这样构建的。

Express 会自动选择合理的比例尺,并自动生成图例。

分面

分面会按某个类别,使用 facet_col='region' 或 facet_row,将一个图表拆分成由多个小图组成的网格。每个面板共用坐标尺度,因此便于比较。

面板数量等于类别值的不同取值数量。

regions = ['North', 'South', 'East', 'West']
print('facet_col=region produces', len(regions), 'panels')
for r in regions:
    print(' panel:', r)

内置示例数据

Plotly 通过 px.data 提供用于练习的数据集,例如 px.data.iris() 和 px.data.gapminder()。它们会返回可直接绘图的整洁数据,因此您无需寻找文件就能进行尝试。

图表对象

每次 Express 调用都会返回一个 Figure 对象。您可以使用 fig.show() 显示它,使用 fig.update_layout(...) 调整它,或者将其保存。Express 会提供一个很好的起始图表,您仍然可以继续完善它。

Express 与图形对象

Express 在底层会构建图形对象(plotly.graph_objects)。需要快速完成任务时使用 Express;当您需要 Express 未提供的精细控制时,再转而使用图形对象。两者生成的交互式输出相同。

Express 中的标题和标签

Express 接受 title 参数和一个用于在显示时重命名列的 labels 字典,例如 labels={'gdp': 'GDP per capita'}。您无需修改底层数据,就能设置易读的名称。

这样既能让数据列保持简洁,又能让图表易于理解。

快速检查

检查您对 Plotly Express 的理解。

回顾

您学到了 Plotly Express 的基础知识:

  • 每张图表使用一次函数调用(px.line、px.bar、px.scatter……)
  • 数据应当是整洁的,每行对应一条观测记录
  • 将列映射到通道:x、y、color、size、facet_col
  • 每次调用都会返回一个交互式 Figure,您可以继续自定义它

常见问题解答

「Plotly Express 基础」课时是免费的吗?

是的 — 「Plotly Express 基础」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。

「Plotly Express 基础」这节课中我会学到什么?

快速创建图表 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Python Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「Plotly Express 基础」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Python Academy 课中编写并运行代码吗?

能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

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