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

简介:

1.4 可视化如何帮助决策


数据有多种视觉展示的方式。然而,其中仅有少数方式能够用人们视觉上看得懂且观察到的新模式来刻画数据。数据可视化并不像看起来那么简单;它是一门艺术,且需要很多实践经验。(就像画一幅画,一个人不可能一天之内成为绘画大师,它需要很多实践经验。)

人类感知在数据可视化领域扮演着重要角色。健康人的眼睛具有水平方向大约200度的视野范围(两只眼睛共享大约120度的视野)。大概人类大脑的四分之一涉及可视化处理,这比其他任何感官都要多。在听觉、视觉和嗅觉中,人的视觉占据最多(约为60%)(http://contemplatingmadness.tumblr.com/post/27478393311/10-limits-to-human-perception-and-how-they-shape)。

有效的可视化有助于我们分析理解数据。作者Stephen Few列举出如下8种定量信息(通过可视化),这有助于理解或交流数据(来源:https://www.perceptualedge.com/articles/ie/the_right_ graph.pdf):

时间序列

排序

局部到整体

偏差

频率分布

相关

名义比较

地理或地理空间

科学家已经绘制出人类基因组,这是我们面临将知识转换为可视化以求更好理解的挑战。换句话说,我们可能不得不找到从视觉上呈现人类基因组的新方法,使得普通人也能理解。

1.4.1 可视化适用于哪里

需要强调的是,数据可视化不是科学的可视化。科学可视化处理的数据本身固有一种物理结构,比如流过飞机机翼的空气分子。另一方面,信息可视化处理抽象数据,帮助解决大量数据集问题。挑战之一是确保数据是干净的,而且通过降维提出不必要的冗余信息。

可视化可以用于知识或数据价值增加的任何情况。通过做更多的数据分析和运行更多的算法即可完成。数据分析的形式可能由最简单变得更复杂。

有时,仅仅观察均值、中位数或总和无法获得真正的价值。这是因为这些测度指标仅仅测度了显而易见的东西。有时,一个区域的并集或数值隐藏着需要特别关注的有趣细节。一个经典的例子(Anscombe四重奏)包括简单的统计性质几乎相同的四个数据集,但在图像中却截然不同。如果想了解更多,请见链接:https://en.wikipedia.org/wiki/Anscombe% 27s_quartet。

 

在大多数情况下,数据集的可视化可能有不同的形式,但是总会有一些人能够画出比其他人更清晰的图片来帮助理解。在一些情况下,必须通过多次分析来得到可视化的更好理解,如上图所示。

良好的可视化不仅仅能看到如博物馆展览一样的静态图。我们还可以深入挖掘数据,发现更多变化。(通过循序渐进地查看,收缩和过滤,改变展示标尺,再得到可视化结果)。如由Ben Shneiderman提供的资料(http://www.mat.ucsb.edu/~g.legrady/academic/courses/11w259/schneiderman.pdf)所示,得到有时在同一图中,以同一个标尺展示所有信息非常有难度,而且用户可以通过个人经验更好地理解这些可视化方法。进一步总结,特别是当数据充足时,可视化在组织和提炼数据方面很有用处。

交互式可视化成为一种新的沟通交流形式,它允许用户分析信息以便创建自己对数据的新理解。

1.4.2 如今的数据可视化

虽然很多计算领域旨在用自动化取代人工判断,但是可视化系统是独一无二的,而且明确设计为无法取代人类。事实上,可视化系统是为确保人类在整个参与过程中的积极性而设计的,这是为什么呢?

数据可视化是在各种计算工具帮助下受数据驱动并由人类创造的一门艺术。一位艺术家用工具和材料(像刷子和颜料)绘制一幅画。同样,另一位艺术家尝试在计算工具的帮助下创建数据可视化。可视化可以是美观的,并有助于使事情更清晰;根据不同的创建者,有时会缺乏上述一个或两个特点。

如今,数据的可视化展示方式已超过30种,每一种特定的方式都有它的用处。正因为可视化方法不断发展进步,我们已经不局限于柱状图和饼状图。数据可视化有很多好处,但它们往往因为缺乏理解而有所不足。在一些情形下,同一个图上聚集太多东西往往会使得整个构图纷繁复杂。

有很多呈现数据的方法,但仅有一小撮适用于大多数情况,这将在本章后面的部分详细讲述。在讨论之前,不妨先看看得到好的可视化效果有哪些重要的注意事项。

什么是好的可视化

好的可视化结果有助于用户探索和理解数据,提供价值和深刻的观点。它是有效的、具有视觉吸引力的、可伸缩的而且容易理解的(好的可视化不必太复杂)。通过开展研究和分析工作,可视化是发现数据模式和趋势的核心工具,我们使用其中的任何一种方法都能够回答数据问题。

有效的可视化背后的主要原则是能够突出你想表现的主要问题,根据观众的层次和背景,精确呈现数据并创造出能够清晰传达信息的可视化结果。

举例:下图来自小样本数据源,该数据展示了1970~2012年10门学科中女性和男性被授予学位的百分比(womens-undergrad-degrees.csv和mens-undergrad-degrees.csv来自http://www.knapdata.com/python/):

 

所有数据来源可见http://nces.ed.gov/programs/digest/d11/ tables/dt11_290.asp,包含全部数据集。

尽管不同学科间授予学位的数量彼此没有关系,但有一种简单的方法,用同一个标尺展现所有学科。让我们分析和观察一下,这种展示方式是否可行,如果不可行,我们需要做什么?还有其他展示方式吗?

一方面,所有学科数据展示在同一幅图上形成了一个很好的对比。然而,我们不能直接得到2000年的信息。除非有一种类似于金融股票图的交互式展示模式,否则没有一种简单的方法来确定2000年各学科的学位授予信息。另一方面,同一学科授予男性和女性学位的百分比共占100%;比如,男性在卫生专业被授予学位的百分比占15.2%,女性占84.8%。

我们还有其他可视化方法吗?可以考虑就每年都创建一个气泡图,加入年份因素,通过设置按钮自助切换不同年份的气泡图,完成交互式的可视化图像。

这种可视化方式更适用于该数据。我们也可以用与原始图相同的滑块,通过强调所选年份的数据实现交互。用不同的方法来观察一些图是否比其他图更好,这是一种好习惯。如果数据的数值区间很大(比如,20~200 000),那么我们可能不得不将数值进行对数处理。

我们可以用Python编程绘制气泡图。此外,也可考虑用D3.js的JavaScript语言和RStudio的R语言。读者可以进一步探索其他可视化的选择。

可以用Google Motion图来可视化,在developers.google.com/chart/interactive/docs/gallery/ motionchart?csw=1#Example呈现的交互式图表,这里展示了与棋牌图类似的一个工作示例。下面的气泡图仅展示三年的情况,但是你可以创建另一个图展示所有年份的情况。

 

数据可视化是数据分析后的一个过程。在前面,我们也注意到数据转换、数据分析和数据可视化已被多次尝试。为什么会这样?我们都知道有这样一句名言,“有知识的人给出正确的答案,聪明的人提出正确的问题。”数据分析有助于我们更好地理解数据,因此,数据分析应用于回答有关数据的问题。然而,当数据用不同方式进行视觉展示时,一些新问题就会出现,而且这也是要重复分析和可视化的原因之一。

数据可视化是数据探索的主要途径,而且几乎总是先于或引发数据分析。有很多数据的视觉展示工具,但是用于分析的工具却少之又少。像Julia、R和Python这些编程语言在表现数据分析方面排名靠前,但是就可视化而言,基于D3.js的JavaScript在生成交互式数据可视化方面具有更大的潜力。

与Python相比,学习R语言相对较难。关于这点,Quora上也有一些争论;你可以在网站(https://www.quora.com/Which-is-better-for-data-analysis-R-or-Python)上验证其有效性。现在,Python有很多统计建模和数据分析工具,因此,成为了研究数据科学的一种颇具吸引力的选择。

相关文章
|
3天前
|
数据采集 数据可视化 数据挖掘
基于Python的数据分析与可视化实战
本文将引导读者通过Python进行数据分析和可视化,从基础的数据操作到高级的数据可视化技巧。我们将使用Pandas库处理数据,并利用Matplotlib和Seaborn库创建直观的图表。文章不仅提供代码示例,还将解释每个步骤的重要性和目的,帮助读者理解背后的逻辑。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和技能。
15 0
|
5天前
|
前端开发 JavaScript Python
Python Web应用中的WebSocket实战:前后端分离时代的实时数据交换
在前后端分离的Web应用开发模式中,如何实现前后端之间的实时数据交换成为了一个重要议题。传统的轮询或长轮询方式在实时性、资源消耗和服务器压力方面存在明显不足,而WebSocket技术的出现则为这一问题提供了优雅的解决方案。本文将通过实战案例,详细介绍如何在Python Web应用中运用WebSocket技术,实现前后端之间的实时数据交换。
22 0
|
2天前
|
JSON 安全 数据安全/隐私保护
深度剖析:Python如何运用OAuth与JWT,为数据加上双保险🔐
【10月更文挑战第2天】当讨论Web应用安全时,认证与授权至关重要。OAuth 2.0 和 JSON Web Tokens (JWT) 是现代Web应用中最流行的两种认证机制。OAuth 2.0 是一种开放标准授权协议,允许资源拥有者授予客户端访问资源的权限,而不需直接暴露凭据。JWT 则是一种紧凑、URL 安全的信息传输方式,自我包含认证信息,无需服务器查询数据库验证用户身份。在 Python 中,Flask-OAuthlib 和 PyJWT 分别用于实现 OAuth 2.0 和 JWT 的功能。结合两者可构建高效且安全的认证体系,提高安全性并简化交互过程,为数据安全提供双重保障。
15 7
|
1天前
|
数据采集 存储 监控
如何使用 Python 爬取商品数据
如何使用 Python 爬取京东商品数据
15 3
|
1天前
|
数据采集 存储 监控
如何使用 Python 爬取京东商品数据
如何使用 Python 爬取京东商品数据
11 2
|
3天前
|
数据采集 机器学习/深度学习 存储
使用 Python 清洗日志数据
使用 Python 清洗日志数据
11 2
|
4天前
|
存储 数据可视化 Python
Python编程中的数据可视化技术
在数据驱动的世界中,将复杂的数据集转换为易于理解的视觉表示形式至关重要。本文将深入探讨如何使用Python进行数据可视化,包括选择合适的库、处理数据和设计有效的图表。我们将一起学习如何让数据讲故事,并确保你的信息传达清晰且有影响力。
|
5天前
|
Python
Python编程案例:同一工作簿不同表单特定数据添加到工作簿的另一表单里
Python编程案例:同一工作簿不同表单特定数据添加到工作簿的另一表单里
10 1
|
6天前
|
Python
你知道 Python 如何解压缩数据吗
你知道 Python 如何解压缩数据吗
18 1
|
1天前
|
数据采集 数据可视化 数据挖掘
Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
【10月更文挑战第3天】Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
11 0