0Pricing
Python Academy · 课时

交互功能

缩放、悬停查看和拖动平移

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

交互性为何重要

与静态库相比,Plotly 最大的优势在于图表会响应用户操作。读者可以缩放查看某个区域、平移浏览数据,还可以悬停读取精确值,而不必让您用标签挤满图表。

交互性让一张图表同时满足总览和细节查看的需求。

悬停提示框

默认情况下,将鼠标悬停在某个点上会显示其横坐标和纵坐标的值。您可以使用 hover_data=['col1', 'col2'] 添加额外的列,或使用 hover_name='name' 设置提示框的粗体标题。

好的提示框可以避免在图表本身添加过多内容。

构建提示文本

从概念上说,提示框只是根据一行数据拼接出的格式化文本。下面用普通 Python 展示同样的思路。

point = {'name': 'Berlin', 'pop': 3700000, 'gdp': 154}
tooltip = point['name'] + '\nPop: ' + format(point['pop'], ',') + '\nGDP: ' + str(point['gdp'])
print(tooltip)

缩放与平移

Plotly 图表包含一个模式栏,其中有缩放、平移和框选工具。用户还可以拖动选择一个矩形区域进行缩放,并双击重置。

这些行为默认启用,通常无需为此编写任何代码。

范围与重置

缩放会临时改变坐标轴范围。您可以使用 fig.update_xaxes(range=[0, 100]) 设置初始范围,用户也可以随时将视图重置回该范围。

可以把缩放理解为从完整数据范围中选取一个子窗口。

full_min, full_max = 0, 1000
zoom_min, zoom_max = 200, 400
visible = zoom_max - zoom_min
total = full_max - full_min
print('Zoom shows', round(visible / total * 100), '% of the range')

悬停模式

fig.update_layout(hovermode='x unified') 会显示一个提示框,列出悬停横坐标位置上的所有数据系列。这非常适合比较同一时间点上的多条线。

其他模式包括 'closest' 和 'x'。

图例交互

Plotly 的图例可以点击。单击会隐藏一个数据系列,双击会只显示该数据系列。这样,用户无需让您构建单独的图表,就能专注于他们关心的数据。

只要图表包含多个数据轨迹,这项功能就会自动生效。

范围滑块

对于时间序列,可以使用 fig.update_xaxes(rangeslider_visible=True) 添加范围滑块。图表下方会出现一个小型总览图,用户可以拖动它来选择日期窗口。

它与 1 个月、6 个月和 YTD 等范围选择按钮搭配使用效果很好。

自定义悬停模板

如需完全控制,请使用 hovertemplate,这是一个包含 %{x} 和 %{y} 等占位符的字符串。您可以决定悬停时显示的确切文本和数字格式。

设计模板就像设计任何格式化字符串一样。

x, y = 2021, 42.567
template = 'Year %{x}: $%{y:.1f}M'
rendered = template.replace('%{x}', str(x)).replace('%{y:.1f}', format(y, '.1f'))
print(rendered)

知道何时适可而止

交互性功能强大,但也不是没有代价。过多的控件会让普通读者不知所措。启用能够回答实际问题的功能,其余部分使用合理的默认设置。

模式栏

每个图表右上角的工具栏就是模式栏。其中包含缩放、平移、自动缩放,以及用于下载 PNG 的相机按钮。显示图表时,您可以通过 config 参数配置或隐藏它。

隐藏不使用的按钮,可以让面向非技术受众的图表更加简洁。

快速检查

测试您对交互式功能的了解。

回顾

您探索了 Plotly 的交互功能:

  • 使用 hover_data 和 hovertemplate 丰富悬停提示框
  • 通过内置模式栏进行缩放和平移
  • 使用 hovermode='x unified' 显示组合提示框
  • 可点击的图例和时间序列范围滑块

请有针对性地使用这些功能来回答实际问题。

常见问题解答

「交互功能」课时是免费的吗?

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

「交互功能」这节课中我会学到什么?

缩放、悬停查看和拖动平移 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Python Academy 需要有经验吗?

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

「交互功能」课时需要多长时间?

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

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

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

此课程中的所有课时

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