零、前言

世界是一个有趣的地方,关于这一点毫无疑问。 我们通过感官体验世界,这些感官收集数据,然后由大脑处理。 世界常常是无序的,需要我们长时间的思考,才能从事物中找到意义。 为了简化这个过程,可以将数据转换为更容易理解的其他形式。

这本书是关于将数据塑造成更容易理解的形式。 它是关于把我们这个时代最丰富的一些数据源——社会网络——转化成可理解的格式。 为此,我们使用了最新的 HTML 和 JavaScript。

这本书的内容

第 1 章可视化数据,向我们介绍了一个不断增长的数据集的世界。 它还讨论了如何使用可视化作为独木舟来导航这条数据河。

第二章JavaScript 和 HTML5 的可视化,着眼于 HTML 和 JavaScript 的新特性,这些新特性为可视化数据提供了机会。 它讨论了画布和可伸缩矢量图形。

第 3 章OAuth,检查了经常令人困惑的 OAuth 技术,并展示了如何使用它来授权我们的应用。 这是因为社交媒体网站上的很多数据都是私人的,有时我们可能需要获取这些数据。

第 4 章JavaScript for Visualization,查看 Raphaël.js 和 d3.js,这是很棒的 JavaScript 库,可以减少手工构建可视化的痛苦,否则是一个耗时和容易出错的任务。

第 5 章Twitter,介绍如何从 Twitter 中检索数据并使用它来构建可视化。

第 6 章Stack Overflow,介绍了如何检索流行的 Stack Overflow 的数据 API,这为可视化提供了一些诱人的机会,可以用来创建交互式图形。

第 7 章Facebook,探索了 Facebook 的 JavaScript API,以及如何使用它来检索数据,以作为我们下一个可视化的基础。 在我看来,Facebook 是这个星球上最早的、至今仍是最大的社交媒体网络。

第八章Google+将介绍谷歌在社交媒体领域的最新尝试,以及如何检索数据来创建一个力指向图。

你写这本书需要什么

使用本书中的示例和代码所需要的工具很少。 你需要安装 node.js(http://node.org),这在第 5 章Twitter中有涉及。 你需要下载 d3.js(http://d3js.org),jQuery(http://jquery.com),和 Raphael.js(http://raphaeljs.com/)。 所有的演示都可以在任何现代浏览器中查看。 这段代码已经在 Chrome 上进行了测试,但应该可以在 FireFox、Opera 甚至 Internet Explorer 上运行。

这本书是给谁的

这本书适合任何对数据感兴趣并想与他人分享这种兴奋感的人。 任何对从社交网络中提取的数据感兴趣的人也会发现这本书很有趣。 读者应该具备 JavaScript 和 HTML 的工作知识。 本书中多次使用了 jQuery,所以读者最好熟悉这个库的基础知识。 使用 node.js 会有帮助,但不是必须的。

会议

在这本书中,你会发现许多文本的风格,以区分不同类型的信息。 下面是这些风格的一些例子,以及对它们含义的解释。

文本代码如下所示:“一旦分配了权限,Facebook 将把用户重定向回您的redirect_uri,允许您利用令牌查询 Facebook API。”

代码块的设置如下:

OAuth.initialize('<Your Public key>');
OAuth.redirect('facebook', "callback/url");

当我们希望您注意代码块的特定部分时,相关的行或项以粗体显示:

function onSignInCallback(authResult) {
      gapi.client.load('plus','v1', function(){
        if (authResult['access_token']) {
          $('#gConnect').hide();
                           retrieveFriends();
        } else if (authResult['error']) {
          console.log('There was an error: ' + authResult['error']);
          $('#gConnect').show();
        }
        console.log('authResult', authResult);
      });
    }

新词语重要词语以粗体显示。 你在屏幕上看到的话,例如,在菜单或对话框出现在文本是这样的:“可以从API 访问选项卡中,你应该点击创建一个 OAuth 2.0 客户机 ID…。”

注释

警告或重要注释出现在这样的框中。

提示

提示和技巧是这样的。

读者反馈

我们欢迎读者的反馈。 让我们知道你对这本书的看法——你喜欢或不喜欢的东西。 读者反馈对于我们开发游戏非常重要。

要向我们发送一般的反馈,只需发送电子邮件到<[feedback@packtpub.com](mailto:feedback@packtpub.com)>,并通过你的信息的主题提到书的标题。

如果你对某一主题有专长,并且你对写书或投稿感兴趣,请参阅我们的作者指南www.packtpub.com/authors

客户支持

现在,您是包书的骄傲所有者,我们有一些东西来帮助您从您的购买中获得最多。

下载示例代码

您可以从您的账户http://www.packtpub.com下载您购买的所有 pack 书籍的示例代码文件。 如果您在其他地方购买了这本书,您可以访问http://www.packtpub.com/support并注册,直接将文件通过电子邮件发送给您。

勘误表

尽管我们已经尽一切努力确保内容的准确性,但错误还是会发生。 如果您在我们的任何一本书中发现了错误——也许是文本或代码中的错误——我们将非常感谢您向我们报告。 通过这样做,您可以避免其他读者感到沮丧,并帮助我们改进本书的后续版本。 如果你发现任何错误,请报告通过访问 http://www.packtpub.com/submit-errata,选择你的书,点击勘误表提交链接,并输入你的勘误表的细节。 一旦您的勘误表得到验证,您的提交将被接受,勘误表将被上传到我们的网站,或添加到任何现有勘误表的列表中,在该标题的勘误表部分。 任何现有的勘误表都可以在http://www.packtpub.com/support中选择您的标题查看。

**## 盗版

互联网上的版权材料盗版是所有媒体都存在的问题。 在 Packt,我们非常重视版权和许可的保护。 如果您在互联网上发现任何形式的我们作品的非法拷贝,请立即提供我们的位置地址或网站名称,以便我们采取补救措施。

请在<[copyright@packtpub.com](mailto:copyright@packtpub.com)>联系我们,并提供疑似盗版资料的链接。

我们感谢您在保护我们的作者方面的帮助,以及我们为您带来有价值的内容的能力。

问题

如果您对这本书的任何方面有问题,可以通过<[questions@packtpub.com](mailto:questions@packtpub.com)>联系我们,我们将尽力解决它。**