一、可视化数据

就在几年前,这本书是不可能出版的。 社交媒体、数据处理和网络技术的快速发展使得不同领域的融合成为可能。 通过这种融合,我们可以创建关于奇异话题的迷人数据显示。 数据中继承的美可以以一种大众可以接触到的方式暴露出来。 可视化,如以下文字地图(http://gigaom.com/2013/07/19/the-week-in-big-data-on-twitter-visualized/),可以在解锁隐藏信息的同时,为用户带来非凡的体验:

Visualizing Data

在这个可视化图中,单词的大小暗示了它们的使用频率。 单词的位置是通过一种算法计算出来的,这种算法设计的目的是创造一种令人愉悦的视觉效果。

在这一章中,我们将看到数据的增长是如何如此巨大,以至于我们需要改变我们的工具来观察它。

这里有很多数据

人类记录的数据量正以惊人的速度增长,这对任何人来说都不应该感到惊讶。 数据存储公司 EMC 每隔几年就会发布一份报告,说明数据被保存了多少(http://www.emc.com/collateral/analyst-reports/idc-the-digital-universe-in-2020.pdf)。 2012 年,据估计,在 2005 年到 2020 年期间,全球存储的数据量将从 130 艾字节增长到 40000 艾字节。 这相当于地球上每个人的数据量为 5.2 tb。 信息量如此之大,以至于要了解其中有多少信息是很困难的。 到 2020 年,这一数字将达到 11 轴,即每人 100 张 dvd。 如果我们换成容量为 50gb 的蓝光光盘,那么存储全部 40000 艾字节所需的蓝光光盘堆仍将远超月球轨道。

随着人们将更多的生活内容放到网上,数据的增长是不可避免的。 智能手机的普及让每个人都变成了摄影师。 Instagram是一个流行的图片分享网站,每天收集约 4000 万张照片。 人们不禁要问,这个世界到底需要多少人的膳食照片。 在过去的几个月里,像 Vine 和 Instagram 这样的视频剪辑分享网站出现了爆炸式增长,这些网站产生了大量的数据。 人们正在创造无数的设备,以扩大智能手机的使用范围,而不仅仅是收集照片数据。 除了常见的 GPS、陀螺仪、地磁和加速度传感器外,最新一代的智能手机还包括温度、湿度和压力传感器。 这允许记录用户周围世界的准确表现。

传感器的增加不仅仅是智能手机的趋势。 传感器和收音机的价格已经达到了一个临界点,在这种情况下,制造记录和传输世界数据的独立设备是经济的。 曾经有一段时间,大型 SCADA 系统的领域是构建一组温度传感器,并向中央设备报告。 我的第一份工作是在一家炼油厂测试一组支持 ip 的监控设备。 当时,仅网络硬件就价值数百万美元。 现在,同样的系统只需几百美元就能建成。 在 Kickstarter 或 Indiegogo 这样的众包网站上,你会发现无数蓝牙或 Wi-Fi 传感器设备。 这些设备可能会帮你找到丢失的钥匙,或者告诉你什么时候给番茄浇水。 它们数量巨大,这表明我们正进入一个自动设备报道世界的时代。 一种物联网正在兴起。

与此同时,每 gb 存储数据的成本正在下降。 更便宜的存储使得跟踪以前会被丢弃的数据变得更经济。 在 20 世纪 70 年代,英国广播公司制定了一项政策,一旦电视节目的录音达到一定的年龄,就销毁这些录音。 这导致了一百多集的 cult 经典神秘博士的损失。 在 20 世纪 60 年代,存储媒体的数据密度很低,这意味着保存完整的档案的成本太高。 现在,由于存储视频的成本大幅下降,这样的删除将是不可想象的。 在亚马逊服务器上存储 1g 信息的成本大约是一个月一美分,如果公司内部有合适的专业技术,成本可能会更低。 帕金森定律说明如下:

工作扩充以填补完成工作的可用时间。

在这个定律的重述中,在我们的例子中,它将是“数据量将增长以填满可用空间。” "

数据的增长使我们的生活更加困难。 虽然数据量一直在增长,但我们理解它们的能力或多或少仍然停滞不前。 可用于精炼和处理大量数据的工具还没有跟上步伐。 对千兆字节的数据运行简单查询是一个耗时的过程。 像“列出所有包含单词‘Pepsi’的 tweet”这样的查询实际上无法在任何地方完成,除非是在并行工作的机器集群上。 即使返回结果,匹配记录的数量也太大,单个人甚至一组人都无法处理。

术语“大数据”通常用来描述越来越普遍的大型数据集。 与大多数已成为营销术语的术语一样,不同的人和公司对大数据的定义也不同。 在本书中,由于计算、存储或检索的限制,使用传统数据库工具在消费级硬件上运行简单查询是困难的。

理解大数据的世界是一个复杂的命题。 以一种有意义的方式将数据可视化将是未来十年的重大问题之一。 更重要的是,这将是一个需要在传统上数据不丰富的领域中解决的问题。

以咖啡店为例; 人们并不指望这家公司会产生大量数据。 然而,渴求数据的消费者开始要求知道他们最喜欢的咖啡的咖啡豆是从哪里来的,它们被烤了多久,以及它们是如何酿造的。 一个类似的项目叫做ThisFish已经存在,它允许消费者追踪他们的海鲜的来源(http://thisfish.info)一直追溯到它被捕获的时候。 以一种容易访问的形式提供关于咖啡的数据成为了咖啡店的一个卖点。 下面的截图显示了一家咖啡店的典型标签,上面显示了咖啡豆的来源、烘焙时间和有机认证:

There's a lot of data out there

人们对数据非常感兴趣,尤其是关于他们习惯的数据。 但是,虽然人们对数据很感兴趣,但没有人愿意在 Excel 文件中搜索。 他们希望看到数据以一种容易理解和有趣的方式呈现给他们。

对数据感到兴奋

事实上,数据是有趣的! 它非常有趣,因为它讲述了一个故事。 问题是,大多数时候,这个故事都隐藏在一大堆看似无趣的数字后面。 提取关键数据并以有意义的方式展示给人们需要一些技巧。 人类是视觉生物,比处理数字表格更容易处理图像。

最好的数据可视化源于对可视化主题的热情。 如果我们的工作主题是我们真正感兴趣的,我们不都能做得更好吗? 出色的可视化不仅能教育观众,还能取悦用户。 他们以一种新颖的方式呈现数据,并且仍然很容易被观众理解。 出色的可视化能够剥离多余的信息,揭示核心信息。 同时,伟大的可视化也有一定程度的美。 不要误以为这种美毫无用处。 在一个人们注意力持续时间越来越短的世界里,美仍有一席之地。 当我们看到赏心悦目的视觉效果时,我们仍然会停下来片刻。 美丽为你赢得的那几秒钟可能会让人们对你有足够长的兴趣,从而理解你的意思。

即使是最温和的数据也有一个值得讲述的故事。 对大多数人来说,没有什么比税收统计数据更不有趣的了。 然而,在这些数据中发现了一些非常引人注目的故事。 这些数据说明了哪些公司在逃避纳税。 它说明了人均收入最高的城市的另一个故事。 在这些枯燥的数据中,有无数有趣的故事,可以通过数据可视化的热情应用提取出来。

数据是很多东西,但它从不枯燥。 您也可以对数据感到兴奋,并发现任何数据集中隐藏的故事。 在每个数据集中,都有一个有趣的结论等着像您这样的数据侦探去揭露。 您应该以数据可视化的形式与他人分享您的兴奋之情。

数据超越 Excel

到目前为止,世界上最流行的数据操作和可视化工具是 Microsoft Excel。 Excel 已经存在了近 30 年,在此期间,它已经成长为,成为企业执行数据分析的实际工具。 Excel 能够对数据进行排序和分组,并为结果信息创建图表。

正如我们之前看到的,世界上的数据量是巨大的。 大多数数据可视化的第一步是过滤和聚合数据到一个包含您想与用户分享的关键见解的数据集。 如果它听起来像提取,意味着它是一个固执己见的过程,那是因为它确实是。 呈现一个公正的视觉效果几乎是不可能的。 不过,没关系。 不是每个人都是你数据的专家,引导别人得出你的结论是有价值的。

您会发现,用于派生可视化的数据几乎从来都不是您可以立即使用的格式。 您需要对数据进行操作,以便将其转换为可以使用的表单。 如果您的源数据集足够小,操作也足够简单,那么您可以在 Microsoft Excel 中进行预处理。 Excel 提供了一套用于排序、过滤和汇总数据的工具。 关于如何使用 Excel 中的数据以及如何创建图表,有很多书籍和文章可供阅读,但在这里我们不会深入探讨。

Excel 的问题在于,它已经过时了。 大家都见过 Excel 的单调图表。 除了一些例外,这些都是用 Excel 95 制作的相同的图表。 数据的兴奋点在哪里? 它好像不见了。 如果你完全用 Excel 创建可视化,你的用户将会错过你对数据的热情。

瑞士军刀以拥有十几个不同的特征而闻名。 您可以使用相同的工具来打开一瓶葡萄酒,就像您使用的工具来清除马蹄上的石头(一个更常见的应用,在大多数部分)。 当您构建一个多功能的工具时,您最终得到的是一个没有特别好的功能的工具。 只要看看 Microsoft Excel 的帮助索引的长度,就会知道 Excel 完全属于多功能工具的范畴。 你可以用 Excel 计算,或者追踪你跑 5K 的速度; 您甚至可以用这些数据构建图表。 但你做不到的是建立一个非常好的图表。 为此,您将需要专注于数据可视化的专门工具。

社交媒体数据

我们已经讲了很多关于可视化和数据的内容,但这本书的另一部分是关于社交媒体的。 除非你生活在一个没有互联网的洞穴里,否则你至少会稍微意识到过去十年席卷全球的社交媒体浪潮。 真的只有十年吗? Facebook 成立于 2004 年。 虽然人们可以举出 2004 年以前的例子,但我认为 Facebook 是第一个进入大众意识的社交媒体网站。

定义一个网站究竟是什么让它成为一个社交媒体网站是困难的。 网站上需要有一些社交互动,用户之间需要有某种联系。 为了避免在任何网站上添加评论区作为社交媒体网站,网站的主要目的必须是让用户之间能够进行互动。 这些网站上的内容通常是由用户生成的,而不是由网站所有者创建的。 社交媒体网站可以让有相似兴趣的用户进行互动。

我为什么要在乎?

社交媒体在我们的世界中所扮演的角色是不可低估的。 即使你避免成为所有社交媒体网站的会员,并相信社交媒体不会对你的生活产生影响,它确实会。 社会媒体对现实世界影响的一个很好的例子是新闻媒体对社会媒体的依赖程度。 今年早些时候,美联社(Associated Press)的推特(Twitter)账户被劫持,多条信息被发送,暗示白宫遭到了恐怖分子的袭击。 虽然这一消息很快遭到了拒绝,但股市却因此大幅下跌。 如果不是这么快就发现了这个借口,现实世界的后果可能会严重得多。

来自社交媒体的数据为世界各地发生的事件提供了背景。 只要看看 Twitter 上的趋势,就能选出当天的重要新闻。 随着报纸订阅量的下降,Twitter、Facebook 和其他网站上的人数却在增长。 传统新闻媒体已经开始通过社交媒体整合评论和分享。 对故事的评论往往成为故事本身,而不是简单地提供一个元故事。 许多评论人士指出,Twitter 在阿拉伯之春(Arab Spring)乃至美国抗议活动中的重要性。 社交媒体正在迅速取代传统的新闻来源,成为推动社会发展的力量。

社交媒体并不局限于人与人之间的互动。 越来越多的企业用它来与客户联系。 通常情况下,获得匿名公司服务的最佳方式是在他们的 Facebook 页面上发布消息或发送 tweet。 我当然有过这样的经历:在推特上提到一家公司或一项服务,结果却让他们的社交媒体人士联系到我。 任何能让公司与客户发展更好关系的东西都是一种强有力的工具,可能会持续很长时间。

从可视化的角度来看,社交媒体是有趣数据的显著来源。 我想不出有什么数据能像人与人之间的社交互动那样引人注目。 人类进化成了群居动物,所以我们对社交圈里发生的事情有一种内在的兴趣。 除了他们的网站,许多社交媒体网站都有 api 来促进使用他们的数据构建应用。 其理论是,如果他们能够为有价值的数据建立一个生态系统,人们更有可能频繁访问他们的网站,第三方应用甚至可能吸引新用户。

社交媒体正是大数据的定义。 Facebook 拥有大约 10 亿用户,每个用户每天可能生成十几条数据。 Twitter、LinkedIn 和 Facebook 都创建了自己的数据库技术,因为它们发现它们必须处理的数据量对于传统数据库来说太大了。 幸运的是,几乎不需要使用全面的社交数据。 可以通过各种数据访问 api 访问更窄的数据集。 关键是要把尽可能多的过滤和聚合转移到社交媒体网站上。 通过探索可用信息,可以得出有趣的结论,并通过通常对用户不明显的可视化方式公开信息。

HTML 可视化

的最后一个谜题是 HTML5。 在我年轻的时候,HTML 的新版本意味着来自万维网联盟的另一个冗长的规范。 HTML 新版本的规范过程将花费数年时间,并将由一个由微软和 IBM 等大型技术组织成员组成的委员会规划出来。 虽然有一个 HTML5 规范,但它不像以前的迭代那样正式。 HTML5 一词用来描述一系列面向未来的技术,这些技术可以用来创建强大的 web 应用。

HTML5 包括如下不同特性的规范:

  • Web worker(多线程 JavaScript)
  • 触屏设备的触控事件
  • 数据格式
  • 帆布
  • 可缩放矢量图形
  • Camera API
  • Geolocation API
  • 离线数据

通过这些新的 api 和功能,HTML5 不仅在浏览器上,而且在移动设备和台式机上都成为了一个主要玩家。 通过 PhoneGap(http://phonegap.com/)等工具包,HTML 和微软的 WinJS JavaScript 可作为 iphone、Android、Windows Phone 甚至黑莓的主要开发语言。 本地 api 绑定到 JavaScript 等价物,向 JavaScript 应用开放摄像头、GPS 和文件系统。 HTML5 还可以用作 Windows 8 风格的应用(以前称为 Metro)的开发平台。 在非 windows 平台上,桌面应用可以使用 HTML5 开发,使用类似 Adobe Air(http://www.adobe.com/products/air.html)的工具包。 HTML5 提供了一个多平台开发环境,允许从 Web 到平板电脑再到台式机学习技能。

脱机数据工具消除了对 web 服务器为应用提供内容的依赖。 直接将数据嵌入到客户端机器上,而不是从服务器上反复取出数据,这使得应用能够真正移动——网络不再至关重要。

HTML5 给可视化开发者带来了巨大的好处。 Canvas 和 SVG 都提供了诱人的功能。 CSS3 还允许在样式方面有更大程度的灵活性。 在 HTML5 出现之前,在浏览器中实现交互式数据可视化最好使用第三方工具,如 Java applet 或 Adobe Flash。 这些技术的采用率虽然很高,但仍然切断了大量用户。 即使有很高的采用率,这些工具的版本经常是过时的。 无论是 Java applet 还是 Adobe Flash 都无法在日益流行的移动平台上使用。 另一方面,现在绝大多数智能手机都以某种形式支持 HTML5。

在 HTML 中开发可视化的最佳特性之一是允许用户与可视化进行交互。 著名的可视化图像,如伦敦地铁地图,由于画在一张静态的纸上而变得不清晰。 交互提供了一个全新的用户参与度——这在以前是不可能的。 如果交互可视化的用户找到了操作可视化以得出全新结论的方法,您应该不会感到惊讶。

行业对 HTML 和 JavaScript 技术的支持令人印象深刻。 所有的科技巨头都在基于 HTML5 和 JavaScript 的浏览器和开发工具上投入巨资。 web 开发领域的变化速度是惊人的。 每一周我都能听到关于一个创新的 JavaScript 库或者一个新的开发平台的消息。 云托管的可用性使得创业公司在网络上蓬勃发展。

在选择用于开发可视化的工具时,HTML 提供了一个很好的选择。 广泛的支持、良好的工具和知名的 API 确保了开发将是一件愉快的事情。 也许不是一种快乐,但至少相对来说没有痛苦。 HTML 和 JavaScript 是所有 web 开发人员的通用语言。 不管开发是用 Ruby on Rails 完成的,ASP。 NET,甚至 Wordpress 作为后端,前端总是用 HTML 和 JavaScript 编写。 这就为开发者提供了大量的人才资源。

小结

向用户传递信息是很棘手的。 现在,点击鼠标或敲击键盘就能获得大量的数据,这让问题变得更加复杂。 作为一名可视化开发人员,您的职责是对不相关的数据云进行排序,从中提取您感兴趣的位,然后以一种有趣的方式将这些数据呈现给用户。 人们对数据感兴趣,但他们很少对在大量表格数据中排序感兴趣。 可视化通常是向用户展示数据的最佳工具。

来自社交媒体网站的易于获取、高质量的社交数据,加上新的可视化工具,为创建有趣的可视化提供了前所未有的机会。 通过开发人员的热情,他们可以看到标准的 Microsoft Excel 图表和表格之外的东西,未来不仅有静态可视化,还有交互式、有趣的可视化,这将让用户在探索以前不可见的数据方面时感到高兴。

在下一章中,我们将研究一些使用现代 web 开发工具创建可视化的方法。