“Visualization gives you answers to questions you didn’t know you had.”
– Ben Shneiderman
我投身数据科学领域已经几年,但是因为个人背景问题我花了一段时间才真正过渡到数据科学。
我的思维方式发生的最变化之一就是我如何看待数据的方式。最初,当我的经理要求我分析某些数据时,我曾经提出过普通的数据可视化(散点图,条形图等)。
我不能做到上面引文Ben Shneiderman说得那样。但是真正掌握数据可视化技术会打开了你以前从未曾想过的世界的大门,可视化可以剥离原始数据集周围的图层。
这通常是成功和平凡的数据科学项目之间的差异。
因此,在本文中,我的目标是向你展示数据可视化的强大功能。我整理了11个令人兴奋的可视化,涵盖了各种主题。为了表明你可以在你选择的任何工具中执行此操作,我们将在Python,R,Tableau以及D3.js中介绍这些可视化。
而你面临的挑战就是选择可视化(已经为所有这些提供的代码)并在你选择的工具中提供你自己的版本。
R中的数据可视化
ggplot2库的创建使R成为数据可视化的首选工具(至少对于程序员来说!)。我使用R开始自己的数据科学之旅时就立即被ggplot的美丽和强大所吸引。
时尚的可视化,即时见解,挖掘模式,所有这一切只需几行代码。毫不奇怪,即使是硬核Python程序员也会在他们的Jupyter notebooks中导入ggplot2(是的,现在能做到)。
如果你正在使用R并且没有探索过ggplot2,那今天请这么做:
在R中创建BBC样式的可视化
这不是严格意义上的一个可视化,但这肯定不是问题,对吧?上面的仪表板是BBC数据团队发布的可视化的融合。多年来我一直关注BBC网站,这是一个受欢迎的版本。
BBC数据团队实际上已经开发并发布了R包和R cookbook ,用于生成如上所述的可视化。R包称为bbplot。它提供了以BBC数据团队使用的样式创建和导出ggplot中可视化的函数。
以下是帮你解决问题的关键资源:
R中的交互式图
交互式是演示中最吸引人的一个方面(如果使用正确)。这种可视化向我们展示了不同的大陆多年来预期寿命相对于人均GDP的变化情况。
如此多的信息都挤进了这么小的空间。用于创建上述可视化的包叫gganimate!毫不奇怪,ggplot的强大功能扩展到另一种令人敬畏的可视化类型。
你可以查看我们在R中构建交互式图的指南:
R的Sankey图
这是Sankey图的典型示例。它基本上显示了信息流,其中箭头的宽度与流量成比例。上面的可视化显示了Facebook的自定义列表广告的相关性。
这种可视化是使用R中的ggalluvial包创建的。它结合了原始alluvial包的风格和灵活性以及tidyverse的强大功能。
完整的代码,只需几行,可以参考这里[6]。
Tableau中的数据可视化
“In good information visualization, there are no rules, no guidelines, no templates, no standard technologies, no stylebooks. You must simply do what it takes.”
– Edward Tufte
Edward Tufte是数据可视化领域的先驱。我觉得这句话真的适用于我们使用Tableau生成的可视化。Tableau提供的众多功能和自定义功能几乎是无与伦比的。
如果你有兴趣开始使用Tableau,那么你来对地方了!以下是一系列文章,可帮助你从Tableau初学者过渡到专家:
世界上最大的选举–印度的选举可视化
这是一个真正惊人的可视化。我只采用了完整仪表板的一部分。这种可视化的范围和所涵盖的数据量是惊人的,对于对此类分析感兴趣的任何人都非常有用。
每个数据点代表有关每个席位的详细信息,包括获胜者的姓名,州,政党和选区。看看这个可视化是多么整洁,尽管包装在一堆信息中。这是我们在每日/每周/每月报告中都可以追求的,对吗?
可以从这里[10]下载的完整Tableau仪表板。
使用Tableau监控销售业绩
我想要包含一个真实的业务仪表板。如果你正在努力想象可以在现实世界中使用这些可视化的地方(使用你的想象力!),你会发现这非常有用。
这是对销售数据的分析,用于衡量与原始配额的距离。我特别喜欢第一个水平标签,它整齐地总结了客户或利益相关者需要知道的关键数字。
完整的Tableau工作表包含五个完整的仪表板,从不同的角度查看这些销售数据。如果你在销售或营销领域工作,我真的觉得你应该将此作为参考。
1910-2018电影类型流行度可视化
我是一个大电影迷,所以这个可视化立即引起了我对Tableau Public库的注意。请记住,随着时间的推移,电影类型的流行度的变化,每种类型都有不同的轴范围。
对我来说最突出的是,你可以将其视为具有多个数据点的仪表板。你是否可以想到类似的用例,这样的仪表板是否可以派上用场?
你可以下载整个工作表[11]并在Tableau中使用它。
D3.js中的数据可视化
如果你想创造令人惊叹的动画可视化,D3.js应该是你的首选工具。它是一个功能强大的库,使你能够为你可以想象的任何类型的故事情节构建自定义可视化。
这部分可能是我在本文中介绍的四个部分中最喜欢的部分。你应该强烈考虑将D3.js添加到你的技能组中,特别是如果你想要定期处理数据可视化。
以下是有关如何开始使用D3.js的两篇热门文章:
概念图 – 概念之间的关系
我经常使用概念图。我可以很容易地描绘不同概念或知识点之间的关系。正如维基百科所说,“概念图通常将想法和信息表示为方框或圆圈,它与向下分支的分层结构中的标记箭头相连接”。
你会发现它可用于映射业务决策,流程图,信息设计,知识可视化等。这是一个评价不足但又有用的工具,可用于装备你的武器库。
这个概念图[14]具有很强的交互性,你还可以尝试使用不同的节点。
D3.js中的光芒图(Sunburst)可视化
啊,太棒了!此可视化显示如何将光芒图概念与描述事件序列的数据结合使用。
想一想,你可以使用它来可视化客户的旅程。你可以使用此可视化查看所有可能的路径,而不是静态漏斗。
这里[15]有完整的D3.js代码来生成这个序列的光芒图。
可视化权力的游戏人物之间的互动
你是权力的游戏的粉丝吗?如果是我想你会喜欢这个可视化。它代表了每个人物的影响力,基于他/她的互动在“A Storm of Swords”一书中出现的互动的次数。
请注意,节点表示人物,链接表示他们之间的交互。节点和名称的大小表示人物的影响力。看到Tyrion影响力最大,难道不是吗?
你可以使用本教程[16]构建自己的权力的游戏的可视化。
Python中的数据可视化
我们经常认为Python是数据科学的终极编程语言。我们将其与数据清洗,构建预测模型甚至某些数据工程任务相关联。但是你知道Python实际上对于生成数据可视化非常有用吗?
没错,Python附带了两个独立的可视化库 – matplotlib和seaborn。你可以查看此文章以了解有关这些库的更多信息。
火星地质图
这种可视化是一件美丽的事情。几天前我偶然发现了这张火星的地质图,我仍然惊讶于这是用Python创建的。
用于创建这种精彩可视化的Python库是:
如果字体太小而无法看清,或者你希望将其打印为海报 – 请在此处[18]完整的高分辨率图像。你可以在此处[19]获取此可视化的Python代码。GitHub存储库有完整的教程可以帮助你入门。
用Python绘制地球同步卫星
我对数据科学界对卫星数据的研究着迷。我们已经看到了新的行星被发现,地面图像被重建,美国国家航空航天局预测地震等等。
PyEphem包用于在Python中创建这个令人印象深刻图像,PyEphem基本上允许我们在Python中实现天文算法。