15种独一无二的创新数据可视化方式
可视化能解答那些尚未发现的问题。
本·施耐德曼(Ben Shneiderman)
掌握数据可视化技术会打开新世界的大门,带来更多机会。精心设计的可视化能帮助程序员找到原始数据集的核心。 这是成功的数据科学项目和普通的数据科学项目之间的区别。
因此,本文旨在展示数据可视化的强大功能。本文总结了15种惊艳的可视化方式,涵盖了各种各样的主题。可以应用于选择的任何工具中,但本文将以Python、R、Tableau和D3.js为例。
1. 用R进行数据可视化
在选择数据可视化工具时,R语言是创建ggplot2库不二之选。
只需几行代码就能实现有个性的可视化、获取实时反馈、揭示数据模式。怪不得偏好Python的程序员也会在Jupyter notebooks 中安装ggplot2(没错,这项功能目前已经实现了)。
如果你正在使用R语言但还未安装ggplot2 ,那就从现在开始吧:
· R语言中数据可视化全方位指导
传送门:https://www.analyticsvidhya.com/blog/2015/07/guide-data-visualization-r/?utm_source=blog&utm_medium=11-data-visualizations-python-r-tableau-d3js
· R语言用户使用ggplot2时的10个常见问题
传送门:https://www.analyticsvidhya.com/blog/2016/03/questions-ggplot2-package-r/?utm_source=blog&utm_medium=11-data-visualizations-python-r-tableau-d3js
2. 用R语言创建BBC式的可视化
严格意义上来讲,这不是可视化,不过也基本上如此。上图展示了BBC数据团队发布的可视化融合。
实际上,BBC数据团队已经开发并发布了一个R语言包和说明书,用于生成类似上图的可视化效果。R语言包的名称为bbplot,其中包含创建和导出可视化的函数,可用于ggplot中来制作BBC数据团队风格的可视化。
以下是一些重要资源:
· bbplot包
传送门:https://github.com/bbc/bbplot
· BBC数据团队的R语言说明书
传送门:https://bbc.github.io/rcookbook/
3. 用R语言构建交互图
谁不喜欢交互图呢?它们是演示文稿中最吸引人的方面之一(如果使用得当的话)。这一可视化方式展示了不同大洲的人口预期寿命与人均国内生产总值之间的变化关系。
这么小的空间竟可以塞进这么多的信息。有没有一种包可以实现上图可视化呢?当然是gganimate啦!毫无疑问,ggplot的强大功能可以延伸到另一种绝妙的可视化类型。
读者可以根据该指南在R语言中创建交互图:
· 如何在R中创建动图以分析健康数据
传送门:https://www.analyticsvidhya.com/blog/2019/04/how-built-personalized-interactive-fitness-tracker-dashboard-r/?utm_source=blog&utm_medium=11-data-visualizations-python-r-tableau-d3js
4. 用R语言构建桑基图
这是一个典型的桑基图示例,其中箭头的宽度与流量成比例,表示信息的流动。上述图像显示了Facebook自定义广告列表的相关性。
这个可视化是由R的ggalluvial 包创建的,其tidyverse功能兼顾了原来的alluvial 包的风格和灵活性。
完整代码:https://stackoverflow.com/questions/50395027/beautifying-sankey-alluvial-visualization-using-r
5. 用Tableau进行数据可视化
好的信息可视化没有规则,没有指南,没有模板,没有标准技术,没有样本。但你必须做好应该做的。
爱德华·塔夫特(Edward Tufte)
爱德华·塔夫特是数据可视化领域的先驱。这句话适用于在Tableau语言生成可视化。其强大全面的功能和自由发挥的空间是无与伦比的。
如果你对Tableau感兴趣,下列文章可以帮助你从新手到专家:
· 新手Tableau指南–简单生成数据可视化
传送门:https://www.analyticsvidhya.com/blog/2017/07/data-visualisation-made-easy/?utm_source=blog&utm_medium=11-data-visualizations-python-r-tableau-d3js
· 数据科学以及商业智能人士的Tableau指南
传送门:https://www.analyticsvidhya.com/blog/2018/01/tableau-for-intermediate-data-science/?utm_source=blog&utm_medium=11-data-visualizations-python-r-tableau-d3js
· Tableau的进阶指南
传送门:https://www.analyticsvidhya.com/blog/2018/03/tableau-for-advanced-users-easy-expertise-in-data-visualisation/?utm_source=blog&utm_medium=11-data-visualizations-python-r-tableau-d3js
6. 世界上最大的选举–印度大选的可视化处理
这个图像相当惊人,这里只选取了一部分。这个可视化覆盖的范围和数据量是惊人的,对这类数据分析感兴趣的人来说非常有用。
图中每个数据点代表每个席位的详细信息,包括获胜者的姓名、州、政党和选区。这个可视化成功处理了庞大的信息,最终呈现了一个非常好的效果。
此处为完整的Tableau面板,可自行下载:https://public.tableau.com/en-us/gallery/worlds-largest-vote?tab=featured&type=featured
7. 用Tableau监控销售业绩
本文使用的是真实的商业案例。如果读者还不知道怎么在现实中的应用可视化(发挥你的想象力!),那么你会觉得这个工具非常实用。
这是一份对销售数据的分析,与原有的额度进行对比。第一个水平选项卡非常棒,它清晰地总结了客户或其他利益相关者需知的关键数据。
完整的Tableau工作簿(https://www.tableau.com/solutions/workbook/track-sales-interactive-dashboard?__src=liftigniter&__widget=learn-recs-li&li_source=LI&li_medium=learn-recs-li)包含五个全面的面板,从不同的角度展示了销售数据。强烈建议从事销售或市场工作的人士进行参考。
8. 1910-2018年间电影题材的流行程度
如果你是一个超级电影迷,这个图像应该会让你印象深刻——Tableau中public gallery。记住,这是电影题材的流行程度随时间变化的趋势。每个题材都有不同的轴范围,应该从这个角度切入(而不是挨个比较)。
最突出的一点是,可以将其视为一个包含多个数据点的面板。请你思考该面板在职场中的其他用法。
你可以下载完整的工作表单,在Tableau中进行实验。
传送门:https://public.tableau.com/profile/bo.mccready8742
9. 用D3.js生成数据可视化
要想创建绝佳的动态可视化效果,d3.js是个好工具。它是一个强大的库,能够为任何类型的网络故事构建自定义的可视化。
如果你想时不时地用上数据可视化,强烈推荐掌握d3.js这项技能。
以下是两篇很受欢迎的D3.js入门文章:
· 用D3.js生成网页数据可视化——初学者指南
传送门:https://www.analyticsvidhya.com/blog/2017/07/beginner-guide-build-data-visualisations-web-d3-js/?utm_source=blog&utm_medium=11-data-visualizations-python-r-tableau-d3js
· 如何用D3.js创建惊艳的网页数据可视化?
传送门:https://www.analyticsvidhya.com/blog/2017/08/visualizations-with-d3-js/?utm_source=blog&utm_medium=11-data-visualizations-python-r-tableau-d3js
10. 概念图–概念的相互关系
笔者经常使用概念图,这样可以很容易地描述不同概念或知识点之间的关系。维基百科是这样定义的,“概念图通常将想法和信息展现在方框或圆中,分别与下级结构中的标记箭头相连”。
概念图适用于业务决策、流程图、信息设计、知识可视化等场景。人们通常低估它的作用,但它其实十分有用。
此概念图具有一定的交互性,你也可以使用不同的节点:
http://www.findtheconversation.com/concept-map/
11. 用D3.js实现Sunburst序列的可视化
这种可视化展示了如何结合sunburst概念与描述事件序列的数据。
想想看——你可以用它来展示客户的行程。通过这种方式,用户可以看到所有可能性,而不止是静态漏斗。你的营销团队会为此拍手称赞的。
查看D3.js完整代码,生成sunburst序列:
https://bl.ocks.org/kerryrodden/766f8f6d31f645c39f488a0befa1e3c8
12. 《权力的游戏》人物关系的可视化
你是《权游》粉吗?如果是,那你一定会喜欢这种可视化的。上图展示了每一个角色在《冰雨的风暴》中的出场次数,从而显示每个角色的影响因子。
请注意,节点表示字符和链接,以及这两者之间的相互影响。节点和名称的大小表示角色的影响。小恶魔带来的影响最大,看到了吧?
可用此教程创建自己的《权力的游戏》可视化图像:
https://www.analyticsvidhya.com/blog/2017/08/visualizations-with-d3-js/?utm_source=blog&utm_medium=11-data-visualizations-python-r-tableau-d3js
13. 用Python生成数据可视化图像
人们通常认为Python是数据科学的终极编程语言。在清理数据、构建预测模型、甚至某些数据工程时都会用到它。但是你知道Python实际上也有强大的数据可视化功能吗?
没错,Python带有两个专用的可视化库——matplotlib和seaborn。
· 9种最受欢迎的用Python生成数据可视化的方法
传送门:https://www.analyticsvidhya.com/blog/2015/05/data-visualization-python/?utm_source=blog&utm_medium=11-data-visualizations-python-r-tableau-d3js
14. 火星地质图
这张火星地质图简直是艺术,它竟然是在Adobe Illustrator帮助下用Python创建的,这太不可思议了!
可用于创建这种美丽的可视化效果的Python库有:
· Matplotlib
· NumPy
· Pandas
· Cartopy
获取完整的高分辨率图像:https://external-preview.redd.it/YsUvGQZYDg6UpWoAg_4dR5s-B_8Y_JtPQfylTOG6p10.jpg?auto=webp&s=53ae6d53f5ce977ffb9f44caa336794dae1ad21e
Python代码:https://www.reddit.com/r/dataisbeautiful/comments/c4elys/oc_a_geologic_map_of_mars/
15. 用Python绘制地球同步卫星
笔者对数据科学界正在进行的卫星数据研究很感兴趣。目前已经发现了新的行星,重新创建了地面图像,NASA可进行地震预测等等。
PyEphem包可以在Python中创建此绘图。Pyephem基本允许在Python中实现天文算法。
很多数据科学爱好者尝试绘制这种可视化图,可以在此处找到所有的资源:https://www.reddit.com/r/dataisbeautiful/comments/3gxp87/i_just_plotted_every_tleinfo_satellite_above_my/