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在北京大学汇丰商学院“数据新闻教学工作坊”讲课内容整理 内容整理:蓝星宇 |
|