Python数据可视化2.8 交互式可视化

2.8 交互式可视化


可视化之所以被认为是可交互的,是因为它必须满足两个标准:

人为输入:某些信息视觉呈现方面的控制必须可为人所用

响应时间:人为的改变必须及时的纳入可视化

当有大量数据进行可视化处理时,即便用现在的技术也很不容易,有时甚至不可能实现;因此,“交互式可视化”通常被应用到系统中。该系统在完成输入的几秒内就可以向用户提供反馈。很多交互式可视化系统支持一种类导航,类似于穿越物质世界的导航。

交互式的好处在于人们在较短时间内可以探索较大的信息空间。这一点可以通过一个平台得到很好的理解。而不足之处在于这种交互性需要大量时间详细检查每一种可能性以测试可视化系统。而且,设计及时反馈用户行为的系统需要关注显著有效的算法。

任何可视化方法都需要好的布局设计方案。一些设计方法自动生成对称图形;另外一些画图方法从数据对称性开始。交互式可视化通过事件监听器来实现。对于一些事件监听器,交互式可视化可能是一种常识,而对于其他事件监听器来说,未必如此。下节描述了所有相关内容。

2.8.1 事件监听器

事件监听器是移动或点击鼠标即可实现的处理过程。技术上,有很多种事件,但纯粹的交互式可视化,我们仅需要了解当用户用鼠标浏览可视化时发生的情况。互动的等待时间,即系统对鼠标操作的响应时间,会非常有影响。

最显著的原则是:用户应该确定已完成一些操作,而不是悬而未决该操作是否仍在进行中。因此,诸如突出显示一个选项的反馈是一种成功确认操作完成的好方法。视觉反馈通常应该在大概一秒的立即响应滞后时间内发生。下面是Google图表中一个JavaScript事件监听器的案例:

 

另一个原则是执行时间是否比用户的自然预期长很多,一些进度指标应显示给用户。在JavaScript中写事件监听器更容易,但如果想用Python绘图方法创建一个交互式可视化,应该选择Plotly。

另一种模块,graph-tool(https://graph-tool.skewed.de),能够以一种直接的方式完成动画。在一个交互式窗口或画面外的文件,用GTK+来展示动画。这种想法很容易实现可视化,在网站上加以呈现和嵌入。

2.8.2 布局设计

为了从视觉上有效展示数据,了解布局设计方法就变得很重要。美学是测度布局算法的优势与不足的标准之一。如果可能的话,为了增加布局结果的可读性,所述结构需要层次或对称;一条关键的因素是对空间的利用。

对解析和理解任何图表来说,良好的布局是必要的。通常,为了便于理解,每一种布局唯一适用于不同的数据可视化。一些著名的布局设计方法如下:

圆形布局

径向布局

球状布局

1. 圆形布局

表格是数据的自然容器。无论信息何时呈现,用一个表的均值来展现表格的几率很高。然而,在很多情况下,当信息复杂(表格很大)时,表格很难用肉眼分析,表格数据模型仍然不够透明。

换句话说,一种有用的容器不总是呈现方法的有用方法。该表格很好得展示出单个数据,但是它们间的关系以及它们组成的模式仍然难以看到。圆形布局会用一些不同的结合(定性和定量)来实现可视化,如下图所示:

 

例如,如上图一样直观,用有限的空间展示复杂关系。

 

上图给出一个用圆形布局展示复杂分层关系的案例。

2. 径向布局

旭日可视化是一种径向空间填充的可视化技术,来展示树状结构(如上图所示)。还有其他的空间填充方法,即用其他视觉编码来描述层次。比如,树形图是空间填充的可视化,用到“容量”来展示“父子”关系。有一些微弱的变化,可以改善这种可视化的信息交流方式。

由于每个轨道的长度随半径增加,这趋向于有更多空间放置节点。随着水平的增加,径向树将在更大面积上扩散更多数量的节点。

3. 球状布局

球状布局存在不同的变化,而且其中一种可能是气泡形式。然而,如果我们用不同颜色和大小的气球(或者圆圈/气泡),则可视化结果能展示更多信息,如下图所示:

时间: 2024-08-06 21:37:45

Python数据可视化2.8 交互式可视化的相关文章

《Python数据可视化编程实战》—— 1.2 安装matplotlib、Numpy和Scipy库

1.2 安装matplotlib.Numpy和Scipy库 Python数据可视化编程实战 本章介绍了matplotlib及其依赖的软件在Linux平台上的几种安装方法. 1.2.1 准备工作 这里假设你已经安装了Linux系统且安装好了Python(推荐使用Debian/Ubuntu或RedHat/SciLinux).在前面提到的Linux系统发行版中,Python通常是默认安装的.如果没有,使用标准的软件安装方式安装Python也是非常简便的.本书假设你安装的Python版本为2.7或以上.

Python数据可视化1.4 可视化如何帮助决策

1.4 可视化如何帮助决策 数据有多种视觉展示的方式.然而,其中仅有少数方式能够用人们视觉上看得懂且观察到的新模式来刻画数据.数据可视化并不像看起来那么简单:它是一门艺术,且需要很多实践经验.(就像画一幅画,一个人不可能一天之内成为绘画大师,它需要很多实践经验.) 人类感知在数据可视化领域扮演着重要角色.健康人的眼睛具有水平方向大约200度的视野范围(两只眼睛共享大约120度的视野).大概人类大脑的四分之一涉及可视化处理,这比其他任何感官都要多.在听觉.视觉和嗅觉中,人的视觉占据最多(约为60%

Python数据可视化2.4 用数据编写有趣的故事

2.4 用数据编写有趣的故事 数据可视化通常改善用数据讲述故事的能力,而且在某些情况下,需要视觉上没有那么琐碎.不久前,新闻记者已经更倾向于将可视化结果整合到叙述中,这样通常有助于读者理解故事.在商界,很少有案例成功掌握数据与故事相关联的方法.对于观众来说,这些有意义的故事应从感性和理性角度都具有吸引力.正如Rudyard Kipling所写,"如果历史以故事的形式串联,那么它将不会被遗忘."类似的想法用在数据方面.因此,我们应该会理解:如果数据展示方式正确,那么读者会更好地理解和记住

《 Python数据可视化》导读

前 言 数据可视化旨在清楚明了地提供信息,帮助读者定性理解这些信息.俗话说,一图胜千字(百闻不如一见).这里,可以换个说法,"一幅图讲述了一个故事,如同万语千言."因此,可视化是一个宝贵的工具,有助于读者快速理解相应的概念.然而,与其说数据可视化是一种技能,还不如说它是一门艺术.这是因为,如过度使用数据可视化会适得其反. 当前,有太多数据需要处理.这些数据包含着许多见解,这些见解是成功的关键.能够发现数据.清洗数据,并使用正确的工具实现可视化至关重要.本书讲解了用Python软件包实现

Python数据可视化1.5 可视化图像

1.5 可视化图像 我们实现可视化是想证实我们对数据的认识.然而,如果数据不容易理解,你可能不会设计出正确的问题. 创建可视化的第一步是弄清楚需要回答的问题.换言之,该可视化的作用如何?另一个挑战是学习正确的绘图方法.下面列出一些可视化方法: 条形图和饼图 箱线图 气泡图 直方图 核密度估计(Kernel Density Estimation,KDE)图 线面图 网络图 散点图 树状图 小提琴图 在识别可视化应该传达信息的过程中,关注下面的问题才有意义: 要处理多少变量?我们试图画出什么样的图像

Bokeh 0.12.7 dev1 发布,Python 交互式可视化库

Bokeh 0.12.7 dev1 发布了.Bokeh (Bokeh.js) 是一个 Python 交互式可视化库,支持现代化 Web 浏览器,提供非常完美的展示功能.Bokeh 的目标是使用 D3.js 样式提供优雅,简洁新颖的图形化风格,同时提供大型数据集的高性能交互功能.Boken 可以快速的创建交互式的绘图,仪表盘和数据应用. 暂未找到更多 Bokeh 0.12.7 dev1 的更新信息,请查看更新日志和发行主页保持关注. 下载地址: Source code (zip) Source c

Bokeh 0.12.3rc2,Python 交互式可视化库

Bokeh 0.12.3rc2 发布了,Bokeh (Bokeh.js) 是一个 Python 交互式可视化库,支持现代化 Web 浏览器,提供非常完美的展示功能.Bokeh 的目标是使用 D3.js 样式提供优雅,简洁新颖的图形化风格,同时提供大型数据集的高性能交互功能.Boken 可以快速的创建交互式的绘图,仪表盘和数据应用. 文章转载自 开源中国社区 [http://www.oschina.net]

Bokeh 0.12.6 正式版发布,Python 交互式可视化库

经过 7 个 开发测试版本和 5 个候选版本后,Bokeh 0.12.6 正式版终于发布了.该版本增加了一些重要功能并修复了几个 bug ,亮点包括: SVG 和 PNG 图像支持 Headless 和 programmatic 导出 用于显示错误估量的 annotations Band 和 Whisker 用于图像和其他"多"字形的 Fine-grained sub-element 悬停点击测试扩展到段和所有标记 修复 DataTables 的排序和选择 布局系统大面积清理和重构 改

Python数据可视化2.1 为什么可视化需要规划

摘要 数据分析与可视化 大多数可视化故事是围绕问题或话题展开的:数据探索或收集的起源.这问题包含了整个故事的起因,构成整个故事.这样的数据征程以一个问题开始,比如,2014年,报道的伊波拉病毒死亡人数是多少?回答这个问题需要一个彼此协作的团队完成.数据传播者的作用应该是创造一种转变观众看法的经历. 故事的关键在于有意义的可视化过程.这些可视化的内容回答了下面几个问题: 数据充足吗? 有这个数据存在的时间窗吗? 全球哪些相关的事件会影响数据? 需要重申的是,在理解数据的基础上识别出我们试图回答的问