在数据可视化领域,静态图表早已无法满足用户对深度分析与探索的需求。

Plotly作为新一代交互式可视化工具,通过其强大的交互功能重新定义了"数据叙事"的边界。

通过精心设计的交互功能,我们可以显著提升数据探索的效率,增强用户的参与感,并实现动态叙事。

本文我们将介绍如何用Plotly库来添加一些基本的互动效果,比如改进鼠标悬停时显示的信息,还有怎么设置图表的缩放和平移功能。

1. 鼠标悬停交互

Plotly 提供了强大的悬停提示功能,可以通过hovertemplate参数灵活定义提示框的内容。

import plotly.graph_objects as go

fig = go.Figure(
data=[
go.Scatter(
x=[1, 2, 3],
y=[4, 5, 6],
hovertemplate="<b>%{meta[1]}</b> 观测值<br>"
+ "X轴: %{x}<br>"
+ "Y轴: %{y:.2f}<br>" # 数值格式化
+ "时间戳: %{meta[0]|%Y-%m-%d}<br>", # 日期格式化
)
]
) # 预留扩展空间 fig.update_traces(
meta=[
["2023-04-15", "实验A"],
["2023-04-16", "实验B"],
["2023-04-17", "实验C"],
]
) # 元数据注入
fig.show()

hovertemplate中,我们使用了<b>标签实现重点信息加粗;

通过%{x}的方式在悬停提示内容中嵌入变量;

通过%{y:.2f}实现数值的精度控制;

通过%{meta[0]}%{meta[1]}调用元数据信息;

并且对%{meta[0]}进行了日期格式化输出。

此外,还可以通过hoverlabel参数,设置悬停提示框的背景色以及字体等,提升视觉效果。

通过hovermode参数,还可以设置提示框的模式,

比如下面示例中设置了hovermode="x unified"x表示会显示X轴的值,unified表示以统一的方式与所有的图形元素进行悬停交互。

fig.update_layout(
hoverlabel=dict(
bgcolor="rgba(255,255,255,0.9)", # 半透明白色背景
font_size=12,
),
hovermode="x unified",
) fig.show()

2. 缩放交互

Plotly 提供了矩形缩放工具,默认情况下,用户可以通过拖拽鼠标选择区域进行缩放。

fig.update_layout(dragmode="zoom")
fig.show()

上面的矩形缩放是默认操作,如果想用鼠标滚轮来进行缩放的话,进行如下设置:

fig.show(config={"scrollZoom":True})

这样就可以用鼠标的滚轮进行缩放了。

3. 平移交互

Plotly 支持拖拽平移功能,用户可以通过鼠标拖拽图表进行平移。

默认情况下,鼠标拖拽是缩放功能,改成拖拽平移的话,使用如下代码设置:

fig.update_layout(dragmode="pan")
fig.show()

在某些情况下,可能需要限制平移的范围,以避免用户过度操作。

通过设置fixedrange=True,可以锁定坐标轴范围,防止用户拖拽超出合理范围。

比如下面的代码,设置了X轴范围固定,这样就只能上下平移了。

fig.update_layout(dragmode="pan")
fig.update_xaxes(fixedrange=True) fig.show()

4. 总结

交互设计是一门平衡功能丰富性与操作简洁性的艺术。

在设计数据可视化交互功能时,我们需要充分考虑用户的实际需求和操作习惯。

通过优化悬停提示、实现灵活的缩放与平移功能,我们可以显著提升数据可视化的效果和用户体验。

实践建议

  • 悬停提示遵循「3秒原则」:关键信息需在3秒内获取,避免用户等待过长时间。
  • 缩放设计采用「渐进式披露」:先展示概览,再逐步探索细节,帮助用户更好地理解数据。
  • 用户体验测试:通过真实用户的反馈优化延迟参数与触发逻辑,确保交互设计符合用户需求。

『Plotly实战指南』--交互功能基础篇的更多相关文章

  1. 20155308『网络对抗技术』Exp5 MSF基础应用

    20155308『网络对抗技术』Exp5 MSF基础应用 一.原理与实践说明 实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实 ...

  2. 『心善渊』Selenium3.0基础 — 24、Selenium的expected_conditions模块详细介绍

    目录 1.EC模块介绍 2.EC模块常用类 3.EC模块的使用 4.EC模块综合使用 (1)title_is(title)示例 (2)presence_of_element_located(locat ...

  3. 20165308『网络对抗技术』Exp5 MSF基础应用

    20165308『网络对抗技术』Exp5 MSF基础应用 一.原理与实践说明 实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实 ...

  4. 『心善渊』Selenium3.0基础 — 1、Selenium自动化测试框架介绍

    目录 1.Selenium介绍 2.Selenium的特点 3.Selenium版本说明 4.拓展:WebDriver与Selenium RC的区别 5.Webdriver工作原理 1.Seleniu ...

  5. 『心善渊』Selenium3.0基础 — 3、使用Selenium操作浏览器对象的基础API

    目录 1.导入Selenium库 2.创建浏览器对象 3.浏览器窗口大小设置 4.浏览器位置设置 5.请求访问网址 6.浏览器页面前进.后退和刷新 7.关闭浏览器 相比于高大上的各种Selenium进 ...

  6. 『心善渊』Selenium3.0基础 — 6、Selenium中使用XPath定位元素

    目录 1.Selenium中使用XPath查找元素 (1)XPath通过id,name,class属性定位 (2)XPath通过标签中的其他属性定位 (3)XPath层级定位 (4)XPath索引定位 ...

  7. 『心善渊』Selenium3.0基础 — 19、使用Selenium操作文件的上传和下载

    目录 1.Selenium实现文件上传 (1)页面中的文件上传说明 (2)文件上传示例 (3)总结 2.Selenium实现文件下载 (1)Firefox浏览器文件下载 1)操作步骤: 2)文件下载示 ...

  8. 『心善渊』Selenium3.0基础 — 4、Selenium基础元素定位详解

    目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...

  9. 『心善渊』Selenium3.0基础 — 10、使用Seleniun定位页面元素归纳总结(超详细)

    目录 1.Selenium中8种基本元素定位方式 (1)单数形式 (2)复数形式 2.By类定位的8种定位方式 (1)单数形式 (2)复数形式 3.XPath定位总结 (1)基础定位语法 (2)属性定 ...

  10. 『心善渊』Selenium3.0基础 — 11、Selenium对元素常用操作

    目录 1.Selenium对元素常用操作 2.Selenium对元素的其他操作 1.Selenium对元素常用操作 操作 说明 click() 单击元素 send_keys() 模拟输入 clear( ...

随机推荐

  1. 国产AI生态新突破!“息壤”+DeepSeek王炸组合来了!

    2025,国产AI火力全开! 天翼云"息壤"深度适配DeepSeek-R1/V3 实现"国产模型+国产算力+国产云服务" 全产业链闭环 打造国产AI新高度 助力 ...

  2. mybatis之日志配置

    1.在mybatis-config.xml中配置 <!-- 指定 MyBatis 所用日志的具体实现,未指定时将自动查找. SLF4J | LOG4J | LOG4J2 | JDK_LOGGIN ...

  3. Word中接入大模型教程

    前言 为什么要在word中接入大模型呢? 个人觉得最大的意义就是不用来回切换与复制粘贴了吧. 今天分享一下昨天实践的在word中接入大模型的教程. 在word中接入大模型最简单的方式就是使用vba. ...

  4. DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?

    2025年伊始,Meta创始人扎克伯格的一则声明引发全球程序员热议:"AI将在今年达到中级工程师水平,逐步接管编程工作."与此同时,国产AI大模型DeepSeek的爆火,让一名8岁 ...

  5. 面试官最想听到的Vue和React区别

    前言 欧阳最近找工作面试时总是被问到两个问题:Vue和React的区别和从编译原理的角度来聊聊Vue的template和React的jsx.面试官问这些问题一般是想了解你对这两个框架的理解,所以这是一 ...

  6. Type-C协议(CC检测原理)-CC1和CC2接电阻-数字和模拟耳机兼容

    1 简介 USB Type-C其实是USB的一种接口形态,USB的接口形态可以分为USB Type-A.USB Type-B.USB Type-C,USB Type-A和USB Type-B还有两种不 ...

  7. ARC132E题解

    简要题意 有 \(n\) 个方块,每个方块有一个初始状态可能为左右或者空.每次操作随机选择一个空进行操作.每次操作可以向左或者向右走一直到下一个空或者走出边界,走到的每个格子会变成左或者右,这取决于移 ...

  8. 清华大学推出的5册免费的 DeepSeek 学习使用指南!

    前言 在当今这个信息洪流.技术飞速迭代的时代,DeepSeek的横空出世极大地降低了普通人利用人工智能技术的门槛.然而,尽管机遇就在眼前,仍有不少朋友面对DeepSeek感到无从下手,不知如何利用它来 ...

  9. CATIA速成

    1.草图编辑器 1.指南针视图操作 指南针可以完成模型移动,旋转等视图操作 红色方点:移动指南针 白色圆点:视图旋转 指南针附着在部件上,操控部件旋转平移: 红色方点-移动.附着到部件上-视图操作.( ...

  10. bp安装+匹配规则(防止抓火狐的多余包)

    bp安装使用 BurpLoaderKeygen.jar: 2c8c7b95640f31985f83580402f26a06b78c55877fa33ef1f9d14d2ebb2d8ecd burpsu ...