五个技巧教你用编程实现数据可视化

简介:

 ◆ 

导 读


目前有很多用于数据可视化的软件和工具,都非常便捷实用。我很难回答像是“我应该学着用什么工具?什么是最好的?”这样的问题,因为只有适合自己的才是最好的。像Excel这样一行代码都不用写就可以做数据可视化的工具,甚至被有些人用来画风景呢。但是,写代码做自己的数据可视化还是有不少好处的,除了更加灵活高效外,还可以完全根据自己的需要进行“定制”。


用编程实现可视化其实是非常有趣的,虽然从起点学习编程不是那么容易,而且大部分人都会说没有足够的时间,但我依然觉得,为了获得长期的收益,从一开始花点功夫还是值得的。


以下的部分是根据我使用不同编程语言及工具的经验分享给大家的一点小提示。


 ◆ 

五个技巧


1.  使用你最熟悉的软件

学习用编程建立数据可视化不代表要摒弃你已经熟悉的工具。我一般使用任何能够最快速解决问题的工具,这个工具可以是Excel,GoogleSheets,或者是Python。


你不需要只用R或者只用JavaScript做完所有工作,在一项工作中囊括不同的工具是有好处的。你的最终目的是制作可视化图表,每一步的结果会引导你进行到下一步,所以不要太纠结于用“正确”的方法做事。


2. 从基础做起

不要期待你第一次尝试就会做出非常高级非常惊艳的视觉效果。尤其在学习的初期,你是有很多路要走的,所以要从基础做起,再慢慢去使用更加高级的技巧。这样你才不会一开始就感到备受打击,从而放弃学习的希望。


在R语言中,有很多工具包可以帮助你做事情,甚至有时候你只要使用一个函数就行了。但是如果你不熟悉R的编程句法,我还是建议你从最基本的R语言学起,即便可能会有些难。


就好比我之前提到的d3.js这个JacaScript函式库,如果你不熟悉JavaScript,或者刚刚开始学习编程,很多类似的东西都会看起来很难。我建议你从MikeBostock写的基础教程学起,慢慢开始了解你做的东西。


3. 找一个项目去完成

不要认为要把所有的东西学完再开始做项目,这样你会被耽搁。先学习一些基础知识就可以开始了,这至少可以保证,日后当你遇到问题在网上搜索的时候,能够看懂那些解决方法。


选择一些数据,然后开始着手尝试可视化吧。一开始的进展肯定非常缓慢,你也会觉得很困惑,这都是很正常的。我直到现在还经常因为一些问题感到困惑,但你一定要坚持做完。


做项目的受益之处,在于它逼着你去学习你需要知道的。你每做完一个项目,下一个就会变得容易一些了。


通常一个数据可视化的项目会分成以下的步骤。


  • 处理和格式化数据

Python

当我有一个非矩形分隔的文件,或数据比较凌乱时,我会写一些特别的Python脚本。幸运的话,我会找到并重新利用过去已有的脚本。有时会用 Beautiful Soup 来修饰,有时会用csvkit

R

我只有在需要加载csv格式表格时才会用到R,通常只是做数据聚合,合并,或处理从原来的数据中派生的部分。

Tabula

多用于公开的政府数据,包括在PDF文件中涉及的数据。没有Tabula的话这个过程将非常痛苦。

Microsoft Excel

只有在有需求的时候才会用到它。数据读入Excel中,然后再导入像Numbers或是OpenOffice这样的工具中。

Google Sheets

有时使用电子表格比写脚本更快,我很喜欢这样简洁的过程。

 

2)   分析数据

在你去做最后的图形之前,你需要先了解这个数据集。

R

这里我想到的是R因为R作为一个开源的统计计算语言,它有一个很丰富的社区,数不尽的扩展包,以及在Stack Overflow上大量的已解答的问题。

 

  • 制作静态图形

这对我来说通常包含两个阶段:( i )在R中进行可视化 ; ii)在Illustrator中润色。

R

R中有可视化工具包,如ggplot2,但我几乎全部使用R自带的那些功能,即base R。对此我写过很多教程。

Adobe Illustrator

如果图形要发布给别人看,我会以PDF格式保存R生成的图形,并在Illustrator中编辑。虽然有些矫枉过正,但效果还不错。我也在考虑试着用Sketch

 

  • 制作交互式图形

Flash已经过时了,而JavaScript是新的宠儿。R在这里应用不广。

d3.js

我用数据驱动的文档来做交互式的数据可视化(我还在学习中)。有许多例子可以用来试手。但如果我想快速完成一个图表,我有时也会尝试用Vega-Lite

 

4.认真阅读编程指南和范例

编程指南是很有用的。一开始可能会有些难,但你必须要适应。如果你的程序出了问题,很大可能是因为你写的不对,而不是代码的实现有问题。所以这个时候你就需要仔细阅读指南,确认你的函数运用是正确的。


在R语言中,所有函数的指南都是用相同的格式写的,它会告诉你这个函数有哪些参数,返回值是什么,并且之后会给出使用的范例,这些范例都非常经典。


d3.js函式库的创建者MikeBostock就写了非常好的指南,在网上也有很多其他教程。Bostock在指南中收录的大量范例是非常有用的,每当我遇到问题,在网上搜索解决方法的时候,我一般都会把出现的问题和“mbostock”放在一起搜索。


5. 着手去做

我有时会也会因为想太多而迟迟不开始,但是只要你能着手按照以上的小提示去做,能节省很多时间。用工具进行数据可视化,一般会有一个最优的做法,但没有必要从一开始就去寻找它。先把形状和颜色在屏幕上试下,然后将数据编译进去,让数据在大体上看起来没问题。如果有些不对劲(尤其是对于含有互用和动画的可视化项目),你再去寻求更优化的做法。一般情况下,即使不是最优,你的图表也是没错的。

 好了,就说这么多。现在请着手去做吧!

原文发布时间为:2016-07-27

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
10月前
|
缓存 NoSQL Redis
Redis 缓存使用的实践
《Redis缓存最佳实践指南》涵盖缓存更新策略、缓存击穿防护、大key处理和性能优化。包括Cache Aside Pattern、Write Through、分布式锁、大key拆分和批量操作等技术,帮助你在项目中高效使用Redis缓存。
1129 22
|
9月前
|
人工智能 Kubernetes 安全
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
175 13
|
9月前
|
设计模式 人工智能 算法
使用低代码平台,让复杂的应用开发变得更轻松
在企业数字化转型中,低代码平台通过模块化设计、智能化对接及丰富的插件生态,大幅提升了开发效率和系统灵活性。平台支持单体与微服务架构,内置多种设计模式和算法优化,提供五大技术引擎和四大应用服务,兼容多种数据库,支持AI模型对接,具备丰富的底层组件和自定义功能,实现快速开发和跨平台兼容,助力企业高效应对复杂业务场景。
|
9月前
|
数据可视化
阿里云产品十一月刊来啦
阿里云百炼上线新模型可支持100万超长上下文,通义灵码支持代码逻辑可视化,多款产品能力新升级,详情请点击阿里云产品十一月刊
160 6
|
SQL Cloud Native 架构师
深入浅出Presto:大数据查询引擎的原理与应用
【4月更文挑战第7天】Presto是高性能的分布式SQL查询引擎,专为大规模数据交互式分析设计。它采用分离式架构,内存计算和动态规划优化查询,支持跨源查询、交互式查询和ANSI SQL兼容性。应用于大数据分析、实时数据湖查询和云原生部署。Presto的灵活性和效率使其在大数据处理领域备受推崇,适合分析师、数据科学家和IT架构师使用。未来将在博客中分享更多实践和案例。
1444 1
|
缓存 NoSQL 关系型数据库
|
缓存 JSON 资源调度
前端包管理器的依赖管理原理
本文主要探究前端包管理器的依赖管理原理,希望对读者有所帮助。
803 0
前端包管理器的依赖管理原理
|
小程序 IDE 开发工具
【新功能介绍】自定义tabBar功能来了!
【新功能介绍】自定义tabBar功能来了!
220 0
|
新零售 前端开发 机器人
先锋人物 | 居然之家执行总裁王宁:回归商业初心,5点思考拯救企业的“数字化焦虑”
先锋人物 | 居然之家执行总裁王宁:回归商业初心,5点思考拯救企业的“数字化焦虑”
811 0
|
新零售 Web App开发 人工智能
长江商学院x阿里巴巴新国潮品牌加速器 | 第三模块「新消费 新品牌 新增长」
编者按: 破茧、重生,破而后立,晓喻新生。中国的国货品牌目前正在经历蜕变,它们体内蕴藏着巨大能量,迎向Z时代潮流,正在羽化成蝶。 2022年2月25日,众多新潮国货的领军者、企业家与长江商学院x阿里巴巴齐聚杭州,共同开启了新国潮品牌加速器第三模块的学习。 老品牌焕新,新品牌崛起是本期同学们关注的重点问题,通过阿里巴巴高层分享及课堂深层次互动解惑,同学们增长新知,拓展中国潮流品牌增长新思路。
1168 0