1.概要 在看到泰坦尼克号数据集的时候,就回想起电影中船长“让妇女和儿童先上”的救生口号,然后就想统计下是否真的如电影所说。 1)第一步先统计了不同人群的生还率发现真的妇女和儿童的生还率要高于男人的。 2)但是在探究船舱等级的时候,发现头等舱的生还率明显高于其他两船舱。 3)对比不同船舱等级的不同人群的生还比例,发现头等舱的不同人群生还几率都远高于其他两舱。 4)做出强烈对比图(头等舱的妇女生还几率跟三等舱的男人生还几率对比图)来突出结论:在泰坦尼克号上执行口号这样表述可能更准确一些:‘头等舱和二等舱的妇女和儿童优先’。
2.设计 在初次可视化的时候,通过对比bar chart、area chart、bubble chart发现还是bar chart最能简单明了的突出主题,所以决定使用bar chart来设计最终的可视化。
为了能够让可视化的图显得更加简洁和平滑,我用python对titanic.csv进行的修改了。同时由于我对于d3的数据过滤不是很熟练,所以我使用python过滤出每个图所需要的不同数据保存到不同的csv文件中(例如:titanic_clean.csv等)。 ----------------改进--------------------- 视觉编码: 由于此数据可视化是基于统计数据来的,需要很高的准确性;准确性最高的是基于位置(position)也就是散点图,但是散点图更多是用来展示变量之间的关系或者趋势,不利于数据的对比,因为视觉编码我们挑选准确性稍低一些的长度(length)来展示不同人群生还率的对比关系。 根据Abela的chart suggestions,此可视化打算是对比(comparision),有很多项(items)可以用来对比,并且每一项都只有一个变化(生还率或生还人数),同时种类(categories)不是很多(基本上基于人群或者船舱等级),因此我们选择bar chart来进行最终的可视化。
布局: 由于对于css + div的熟悉度不够,只能选择尽可能简单的布局,最简单的布局就是一层层往下加,而且每一层都居中即可。
图例: 在每一张图上都添加上图例(生存和死亡),以方便观众理解。
层次: 本来计划是想设计成可以下钻的多层次图例,但是受限于技术和时间,就舍弃掉了,只做了按钮让观众点击以观看各种可视化图。
3.反馈 1)反馈1:在设计过程中,曾经设计了不同年龄的生还几率,但是由于数据集的量不是很大,有的年龄人数很少,导致整个图看起来非常奇怪,十分不平滑。 处理结果:删除了此图,用python修改数据集,改成了不同人群(12岁以下是儿童,50岁以下是成人,50岁以上是老人)。
2)反馈2:审阅员在review中提到可视化中仅仅给出了每组数据的生存率,因为生存率是一个比例,单独存在是没有太大的含义的。假如某一组数据只有一个人,他的生存或者死亡对于生存率的影响是非常大的(不是0%就是100%),如果不包含每组内人数的信息,我们可能会得出不准确的结论。因此建议你在bar chart的柱形上方,或者悬浮框tooltip中添加每组的人数count. 处理结果:通过使用dimple在bar chart垂直居中的位置添加上每组的人数,以方便观众更加清楚数据的真实性和提高数据的准确性。
3)反馈3:将网站搭建在vps上,让非专业的朋友观看了,反馈说pclass中的1,2,3刚开始并不懂什么意思,而且紫色的字体太小了,读起来费劲。以及结论不够突出,主界面太low。 处理结果:用python修改pclass的内容;调整字体大小;将结论更换字体大小以及颜色;在主界面添加阴影以及简单的动画。
4.资源: https://github.com/PMSI-AlignAlytics/dimple/wiki/dimple.chart#customClassList https://github.com/d3/d3/blob/master/API.md http://www.runoob.com/css3/css3-transitions.html http://dimplejs.org/examples_index.html http://dimplejs.org/advanced_examples_viewer.html?id=advanced_bar_labels