分享

Jonathan Soma:数据分析和可视化锦囊

 wheatfa 2017-02-25


Jonathan Soma

项目官网:http:///

个人网站:http:///


美国哥伦比亚新闻学院LEDE数据新闻项目主任。这一项目80%内容是编程,20%是新闻学,旨在培养文理兼备的技术极客。Soma同时负责哥大新闻学院数据分析、数据处理和数据可视化课程教学。


BUT!不要以为Soma只是一个码代码的技术宅!他的兴趣之广,令人惊奇——画漫画、开办业余学校、酷爱做菜、开厨艺小课堂、爱猫如命,还做过世界语言学地图……对生活的热爱,结合超强的技术功底,使得Soma的作品兼具严谨的论证和活泼的创意,也成为了各大媒体的宠儿。


SO!想学数据可视化?一起来看看男神发出的锦囊吧!



工具清单

工具清单

编程

网页

地图

可视化


Python

广受欢迎的编程语言。可满足各种各样的需求,如数据分析,网页爬取,绘图等等。


R

在数据分析和可视化领域,可以和Python相互替换


Javascript

主要用于实现交互可视化


Arduino/C++

简单说就是“可编程的电路板”。你可以通过各种各样的传感器来感知环境,收集数据。


 黑科技 

1

Python

Python是Soma本人常用的编程工具。针对不同的需求,他也给我们介绍了使用Python进行数据可视化的几种捷径:

1. 使用API接口

API(Application Programming Interface,应用程序编程接口),简单说,就是通过某一预先定义的渠道读/写数据的方式。


目前,越来越多网站都开放了数据资源,用户可以通过API直接调用,从而大大节省了自行收集数据的成本。


举个栗子。

全球最大的正版流媒体音乐服务平台Spotify就开放了自己的API接口(https://developer./web-api/)。例如,我们可以搜索其中的中文歌曲列表,并获得数据。

三行代码(浅绿底色部分)搞定。

返回的这一大堆信息就是计算机眼中的数据库啦。

然后你就可以随便玩它们了!


比如:

找到陈奕迅的所有信息。


再找到他所有的热门金曲。

按顺序输出名字、热度、所属专辑。


Bingo!《十年》果然是最火的

紧接着是《淘汰》、《岁月如歌》、《因为爱情》……


其实一共也没几行代码吧!感觉可以玩一天。


总之,API就是一个很方便讨巧的存在。学习Python的时候也可以先用这类数据入门,否则你可能在前期搜集数据的时候就已经丧失了兴趣。


2. Beautiful Soup

这是基于Python的一个软件包,主要功能是从网页抓取数据。它可以很好的处理不规范标记并生成剖析树。说人话就是……它能够让你在爬取网页的时候得心应手。


就这么几行,一张billboard网页就被抓下来了。

如果你懂得一些HTML,就可以通过Beautiful Soup轻松访问网页中的各种元素。


比如:


这就是从网页中爬下来的前十名单曲。鹿晗排名不错。


再解释一下。爬取网页和前面说的API是不同的,API需要提供数据接口,用户是被动的。但爬网页是用户主动的,只要有网页,就能爬取。而Beautiful Soup堪称爬虫神器,有了它,我们也可以随心所欲建立自己的数据库了。


3.Pandas

它是基于Python的数据分析包。Pandas纳入了大量库和一些标准的数据模型,提供了高效操作大型数据集所需的工具。简单说,就像是Python中的Excel。


同样,简单几行代码,即可将你的csv文件传入Pandas,然后就可以开始分析、绘图了。

比如,这就是一张简单的散点图。

编程作图的好处就在于重复利用效率高。当你下次再要绘制散点图时,只需要修改个别参数即可。


作图完毕后,你可以将图存为pdf(图是矢量的)。再用AI打开,即可进行编辑和美化,让你的图更有设计感!


额,一个不成熟的小尝试……文字是随便添的,不代表真实数据。


总之,Soma推荐的 Python+Pandas+AI “一条龙组合”,确实十分好用。只用Python作图,总是会受限于它的默认格式,不够个性化;只用AI作图,工序复杂、效率太低。但是,一旦把它们结合起来,就能兼顾数据分析和数据可视化,既高效又美观。


2

传感设备+编程

数据,可以不仅仅是统计局网站上的表格。也不必是平面的,甚至规律的。事实上,数据可以是Anything。


人们对编程作图的期待也已超出了绝对的数学之美。戴上传感设备,你的一举一动都是数据集。


啥也不说了,看图吧。

感应舞蹈动作并以粒子影像呈现

用线段呈现michael jackson的舞蹈

工具清单

编程

网页

地图

可视化


HTML

可是说是写网页必备的语言了,可以搭建网页框架,确定网页元素。对于数据可视化来说,独立写出网站或许并不必要。但是,看得懂HTML语言,并能熟练使用开发者工具则是必备技能。


CSS

网页样式表。简单来说就是定义了网页元素的大小、颜色、风格……与HTML配合使用。


Javascript

实现交互效果,让网页可以与人互动(例如表单、按钮、拖拽效果等)。


WordPress

强大的博客系统和内容管理平台,拥有众多模板和插件,操作简易。用少量的代码就能搭建自己的网页。


jQuery

这是一个优秀的Javascript代码库。封装了常用的功能代码,可以简化HTML文档元素的遍历,事件处理,动画和Ajax交互,实现快速Web开发

工具清单

编程

网页

地图

可视化


1.QGIS

桌面地理信息系统,专业级别的地理信息分析、设计工具。如果你专攻城市规划等,那就不要错过。

QGIS专业精细的操作界面


2.CARTO

/Mapbox

在线地图制作工具,可拖拽滑动。只需要把整理好的数据文件拖进CARTO,它就会自动为你画出地图,接下来只需要调整各种风格参数就可以了。也支持多张地图的叠加。

对Twitter上2016年超级碗话题的监控

https:///blog/superbowl


3.Leaflet

Leaflet是专为制作互动地图开发的JavaScript 库。需要编程基础。几行代码,你的地图就灵动起来!

快速代码入门请见

http:///examples/quick-start/


4.Adobe

 Illustrator

制作平面地图。可以先在网上下载svg格式图片,然后进行编辑。


5.D3

不可拉伸或拖拽,但可以做出很炫的效果。过程比较复杂,需要编程基础。


6.卫星图片

有时候,我们并不需要自己作图。从Google Earth或NASA上下载卫星图,加上注释,也是不错的选择!



 黑科技 

1

地理数据自动生成

http://


这个绝对是神器。有时候,你只是想找到特定的区域,或者就想自己DIY,制作个性化的地图。这时候,怎么获取地理信息呢?


在这个网站上,“所画即所得”!你只需在左侧地图上画出你需要的区域,右侧就会自动生成代码。只要将代码Copy到CARTO这样的地图制作平台上,就轻松生成你的专属区域了。

以“深圳野生动物园”为例的代码生成

小编只想说,懒是人类进步的阶梯


2

svg图片获取

http://www./svg-maps/


svg的意思是可缩放矢量图形,也就是说无论怎么缩放都不会影响图片质量。正如上文谈到的,当你需要制作平面地图时,可以先下载svg地图素材,然后在AI这样的做图软件中进行填充和设计。


这个网站提供各国的svg地图(什么小国都有!)。以前只知道去站酷上找图的小编眼泪掉下来。

工具清单

编程

网页

地图

可视化


1.Adobe Illustrator/Inkscape

AI的长处在于处理矢量图形(我们更熟悉的Photoshop则是处理像素)。可以说,要进行数据图表的平面可视化,AI是绝对绕不开的工具。Inkscape也可以高效美化矢量图,但应用广泛度不如AI。


2.D3

D3可以画图,也能实现交互。它需要编程,但很方便就可利用HTML/CSS等底层技术,网上也有大量实例可模仿。自由度高,但因为要人为控制很多元素,所以比较复杂。


3.Tableau

操作简单易学。它可以自动识别和分离数据,你只需要拉取某几个变量,选择图表类型,即可自动生成图表。不需要编程。


4.Chartbuilder

可以创建简洁的交互式图表


5.Echarts

轻松制作适用于网页的互动图表。百度开发的,效果完全不输国外同类工具,用起来有民族自豪感。


 黑科技 

1

颜色代码

http://www./htmcolor.htm


知道你们最爱看黑科技。在图表设计过程中,关键中的关键就是色彩。那计算机是如何读懂颜色的呢?


原来,颜色是由十六进制符号定义的,这个符号由红色、绿色和蓝色的值组成(RGB)。每种颜色的最小值是0(十六进制:#00)。最大值是255(十六进制:#FF)。举个栗子,不要以为#FF0000是外星文,它的意思是红色。


百度/谷歌搜索HTML Color,你可以得到众多查询颜色代码的网站。上面给出的链接只是一个代表,选择自己用得顺手的吧!

示例:蓝色的color code

每一种蓝色都叫得出名字真是厉害了


2

配色方案

http://


常常在各种社交媒体上看到所谓的“配色方案”。但是搜集这些零零散散的方案实在太麻烦,实用性也不强。于是,我们又有了一个神一般的网站……


整个网站相当简洁。在左侧,你可以选择单色渐变配色,也可以选择复合配色。下方,可以直接复制color code。而且,所有的配色方案都可以以Excel、CSS、JSON和Javascript的形式下载。


你可能也发现了,colorbrewer原本是为地图可视化专门设计的,所以配合地图食用,效果更佳!



看了这么多,你也许是惊奇的,也许是慌张的。


数据可视化本身就是一个交叉学科,要求从业者具备“全栈”能力——既懂编程、又懂设计,还要具备统计知识和新闻敏感。


而随着数据产业的蓬勃兴起,各种各样的工具也层出不穷,让人眼花缭乱。事实上,Soma列出的也仅仅是一张不完整的清单。


但,我们学习工具的意义难道是穷尽工具吗?当然不。我们要做的,只是寻找那些优质的、顺手的、符合自己能力和需求的,物尽其用即可。


最后,无论你是教师,还是数据可视化的学习者,在使用工具之前,问问自己这些问题:

1.工具为谁服务?我讲的是一个好故事吗?

尽管工具纷繁复杂,但如何问问题、如何构建一个好故事,至关重要。这不仅关乎最初的创意,也关于论证的过程。创意可以大胆,但求证务必谨慎。


2.编程是为什么?编程是必须的吗?

编程的主要优点,则在于数据获取(如爬虫)、更深度的数据分析,以及更酷炫的可视化效果。但其实,很多简单的分析和可视化,Excel就能胜任。总之,根据任务的难度,选择合适的工具。


3.如何是最高效的工作方式?

某种程度上说,使用工具是一件personal的事情。只有亲自体验各种工具,才能找到最高效、最舒适的工作路径。


本文基于2017年2月16日-18日Jonathan Soma在北京大学汇丰商学院“数据新闻教学工作坊”讲课内容整理

内容整理:蓝星宇



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多