揭秘可视化:彩色的数据挖掘?来说说我们怎么做的
世界无烟日,知微数据联合财新数据可视化实验室推出“非平装烟盒”可视化专题,与你一同透视全球烟盒。从选题,到数据采集、分析、设计、撰稿、开发……来自世界各地的11670张烟盒图片如何与11670条数据一一对应?今天,我们来为你揭秘幕后的故事。
六一前夕,刷屏的那成千上万张烟盒,还记得吧?就是下面这张
《非平装烟盒》(项目链接:http://datanews.caixin.com/mobile/notobacco)
是财新数据可视化实验室为世界无烟日(5月31日)所做的专题策划。11670张烟盒图片,来自世界各地,与11670条数据一一对应。怎么做到的?
三个问题之后,没有秘密。
特别福利:作品涉及的烟盒图片相关数据已经在《非平装烟盒》项目末页提供下载链接。
Q1:这么多张烟盒图片,如何收集?
知微数据(数据采集):
首先确认目标站点的组织结构与目标信息所在的位置,利用Java语言下基于HttpClient、HtmlUnit、Jsoup、Selenium与BerkeleyDB为核心的采集平台以广度优先策略,(广度优先算法就是从种子链接开始,讲种子链接中包含的子链接提取出来,放入队列排队抓取,被处理过的链接需要放入Visited表,处理一个链接前需要先判定该链接是否存在于Visited表中,如果存在则认定为处理过的链接直接抛弃,循环往复。)开始对目标站点的图片链接进行遍历读取文件流并以BASE64的形式存入MongoDB数据库,同时对该图片文字信息特征进行数据索引。最终将图片输出以带有国别、品牌等信息为文件名的JPG/PNG图片并压缩打包。
Q2:从11670个烟盒,到11670条数据,都经历了些什么?
罗晨(数据分析、撰稿):
1. 分析之前,先做数字化
前序同事抓取了中国烟草网站的所有烟盒图片,每一张图片都用“地区+香烟类型”的格式来进行命名,这个命名实在太贴心了,帮我省掉了整理命名的麻烦步骤。作为数据分析人员,我首先用DOS命令获取了所有图片的名称,再利用Python给每一张图片重新以阿拉伯数字命名,在数字和字符串间建立了一一对应的关系,方便后期进行分类、抽样操作。
2. 物以类聚,色以群分
其实最开始的想法挺简单——打算以烟民的烟盒评分作为切入点,并没有想到用高大上的色彩分析。后来经过团队的讨论,并参考了清华大学向帆老师的春晚色彩分析(具体请见向帆的博客:《海王星上看“春晚”》),决定从烟盒的颜色着手。
颜色,不仅是直观的视觉感知,更是地区文化的偏好,譬如中国人对红色、黄色情有独钟,这种对于特定色彩的执着可以说是镶嵌在基因里了。之后面临的是烟盒颜色的处理问题,如果将烟盒做单纯拼接,那么会显得凌乱,难以发现规律。于是决定使用Python进行颜色提取,用了PIL(Python 3中改名为Pillow)模块后,发现用不复杂的代码就足以解决主色调提取的问题,顺利地得到了一万余张烟盒的主色调,数据格式是包含RGB数值的元组。
各地区的烟盒差异不仅体现在颜色上,也体现在视觉标识上。如果要自动化地从烟盒图片上识别形状,可能只有机器学习的方法,但是身为文科生的我并不会。所以就只好仰赖人工的内容分析了,选择了几个具有代表性的对比地区后,首先要做的是抽样(普查成本太高)。我的做法是对选中地区的烟盒图片进行简单随机抽样,然后自己构建类目对样本进行编码,最后用Excel和SPSS进行统计分析,得出统计结果。
(一点感受——烟盒色彩分析非常好玩,因为其中需要进行人工校验,所以基本把各种图片都浏览过一遍,发现很多特别神奇的包装,真可谓大开眼界。我认为这是一个纯探索性研究,没想到最后能得出许多有意义的结论,真的很感谢财新数据可视化实验室,让一名实习生可以有机会在一个创新方向上深挖,也感谢编辑老师在项目期间给我足够的时间,没有催稿,更感谢所有项目组的伙伴们,协同才是最优质的动力。)
Q3: 关于设计&前端开发,想说点啥?
佳昕(设计及开发):
这个项目的设计宗旨只一个——释放数据的魅力,别拘着。但并不容易……
开始的设计草图:
但是体会出一些问题,比如——
问题1:进入主题慢;
问题2:世界概况应该作为“辅助信息”放在后半部分
问题3:出于用户角度考量,可点击的色谱应该放在右侧,便于移动端用户操作。
(第一页那个奇怪的人形,其实是《志明与春娇》里对着两位主角喊“damai smoke”的港警,本来打算用一段gif扔出戒烟的主题,但后面觉得与主题调性不搭,遂……割爱删掉。)
和黄晨老师讨论后的设计草图:
增加电影脚本的感觉,利用动画快速回顾历年控烟日主题之后迅速进入主题,解释什么是平装烟盒,平装烟盒本应如何,再利用翻转效果展示“现实”却是怎样的。
1-2-4-2195个烟盒的设想很好的发挥了烟盒封面聚集起来给读者的视觉震撼,“数据来源于生活,回归到生活”是和黄晨老师讨论后令我印象深刻的一句话。
关于开发,开头动画利用css的动画效果,后面色谱生成与图片交互主要应用d3.js。最大的难点在于图片太多,移动端加载出现崩溃,一度考虑过只选取其中一部分烟盒图片配合点击,但觉得这样浪费了挖掘的图片,也有违数据真实,后面尝试把加载图片的工作放到点击动作之后,这样提高了加载效率。
不过成品中还是有很多细节需要敲打,根据不同机型的读者反馈,项目加载时间还是过长,在之后会继续跟进完善。
编辑絮语:
这个选题的灵感最初来自于20116年11月财新网的一篇报道,《全球烟盒警示面积排行 中国大陆仅列115位》,其中有一句话“中国大陆是世界上烟盒最漂亮的国家和地区之一”。什么是漂亮?红的,黄的,金灿灿的?色彩是最本源的可视化,直觉数据可视化用于展现出这所谓的“漂亮”是非常对路的。于是有了后面的工作。
过程中团队成员集思广益,有很多大胆突破的想法,经历了“从少到多,再从多到少”的迭代过程,有很多不错的想法最终囿于篇幅而被舍弃掉了。不论是数据新闻报道还是融媒体报道,要警惕陷入“看,我什么都会”的误区当中,一切技巧最终是服务于主题的。用产品语言说就是,我们既要知道我们要做什么,更要知道我们不做什么。
再次提醒福利:作品涉及的烟盒图片相关数据已经在《非平装烟盒》项目末页提供下载链接。
点击关键词查看精彩文章↓↓↓
数据报告:
YSL营销|微博双11|武亦姝与赵雷|抵制乐天事件|315舆情全盘点|网易云音乐乐评专列|共享单车|“美联航拖客”事件|小米6发布会预热营销|“喜茶”数据分析|阴阳师VS王者荣耀|美团歧视性招聘事件|菜鸟顺丰之争|
专题解读:
热点事件:
非法疫苗案|和颐酒店女生遇袭|年薪12万加税谣言|安徽铜陵爆炸|圆通北京站点异常|穿山甲公子|APA酒店|辱母杀人案|谢娜删张杰微博|黄小厨抄袭风波|我是范雨素”刷屏|深圳四胞胎|锤子发布会|医生被打“熊猫眼”事件梳理|美团招聘“地域歧视”|留学生演讲涉嫌“辱华”|女德讲座刷屏|毕业旅行变集体婚礼|
总结盘点:
2016年8月|2016年9月|2016年10月|2016年11月|2016年度事件盘点|2016年度谣言盘点|2016年度危机公关事件盘点|2017年1月|2017年2月|2017年3月|2017年4月|2017年5月 |