数据可视化

简介:

From simple charts to complex maps and infographics, Brian Suda's round-up of the best – and mostly free – tools has everything you need to bring your data to life

One of the most common questions I get asked is how to get started with data visualisations. Beyond following blogs, you need to practise – and to practise, you need to understand the tools available. In this article, I want to introduce you to 20 different tools for creating visualisations: from simple charts to complex graphs, maps and infographics. Almost everything here is available for free, and some you have probably installed already.

ADVERTISEMENT

Entry-level tools

At the entry level, we'll be looking at unexpected uses for familiar tools. You might not think of Excel as a visualisation package, for example – but it's capable of surprisingly complex results. If you are just getting started, these tools are musts to understand. If you deal with visualisations every day, you'll quickly find yourself advancing beyond them, but not everyone will, so you'll always be dealing with data coming in from sources you'd rather not deal with.

1. Excel

for example, by creating 'heat maps' like this oneIt isn't graphically flexible, but Excel is a good way to explore data: for example, by creating 'heat maps' like this one

You can actually do some pretty complex things with Excel, from 'heat maps' of cells to scatter plots. As an entry-level tool, it can be a good way of quickly exploring data, or creating visualisations for internal use, but the limited default set of colours, lines and styles make it difficult to create graphics that would be usable in a professional publication or website. Nevertheless, as a means of rapidly communicating ideas, Excel should be part of your toolbox.

Excel comes as part of the commercial Microsoft Office suite, so if you don't have access to it, Google's spreadsheets – part of Google Docs and Google Drive – can do many of the same things. Google 'eats its own dog food', so the spreadsheet can generate the same charts as the Google Chart API. This will get your familiar with what is possible before stepping off and using the API directly for your own projects.

2. CSV/JSON

CSV (Comma-Separated Values) and JSON (JavaScript Object Notation) aren't actual visualisation tools, but they are common formats for data. You'll need to understand their structures and how to get data in or out of them. All of the following toolkits accept at least one of the two formats as input.

Online visualisations

3. Google Chart API

The portion of the toolset for static images has been deprecated, so the Google Chart Toolssite now only offers tools for dynamic charts. They are robust and work on all browsers supporting SVG, canvas and VML, but one big problem is that they are generated on the client side, which creates problems for devices without JavaScript, offline use – or just when saving in different formats. Static images didn't have the same issues, so I'm sorry to see them go.

However, the API has just about everything but the kitchen sink, from bar charts and line graphs to maps and even QR codes. You will probably find the right visualisation for your needs as long as you are comfortable with the Google look and not in need of extreme customisation. As a jumping-off point, it is a great tool to know how to use.

The portion for static images has been deprecated, but the Google Chart API is a good way to create dynamic visualisationsThe portion for static images has been deprecated, but the Google Chart API is a good way to create dynamic visualisations

4. Flot

Flot is a great library for line graphs and bar charts. It works in all browsers that support canvas – which means most of the popular ones, with some extra libraries to get canvas to work as VML in older browsers. It's a jQuery library, so if you're already familiar with jQuery, it's easy to manipulate the calls back, styling and behaviour of the graphics.

The nice thing about Flot is that you have access to plenty of callback functions so you can run your own code and style the results when readers hover, click, mouseout, and other common events. This gives you much more flexibility than other charting packages, but there is a steeper learning curve. Flot is also limited to line and bar charts. It doesn't have as many options as other libraries, but it performs common tasks really well.

It's specialised on line and bar charts, but if you know jQuery, Flot is a powerful optionIt's specialised on line and bar charts, but if you know jQuery, Flot is a powerful option

5. Raphaël

Raphaël is another great JavaScript library for creating charts and graphs. The biggest difference to other libraries is that it focuses on SVG and VML as output. This has pros and cons. Since SVG is a vector format, the results look great at any resolution; but since it creates a DOM node for each element, it can be slower than creating rasterised images via canvas. However, the upside is that you can interact with each DOM element and attach events, just like HTML.

The website includes plenty of demos to show how easily Raphaël can create common charts and graphs but, because it can also render arbitrary SVG, it has the ability to create some very complex visualisations for which you might otherwise have to resort to other vector tools such as Illustrator or Inkscape.

slower than raster-based tools, but it's capable of complex resultsRaphaël is a great way to create vector-based charts: slower than raster-based tools, but it's capable of complex results

6. D3

D3 (Data-Driven Documents) is another JavaScript library that supports SVG rendering. The examples go beyond the simple bar charts and line graphs to much more complicated Voronoi diagrams, tree maps, circular clusters and word clouds. It's another great tool to have in your toolbox, but I wouldn't always recommend D3 as the go-to library. It's great for creating very complicated interactions – but just because you can, it doesn't mean you should. Knowing when to stay simple is a big part of choosing the right visualisation tool.

D3 is capable of creating very complex output  but it's best saved for special cases, not everyday useD3 is capable of creating very complex output – but it's best saved for special cases, not everyday use

7. Visual.ly

If you are in need of an infographic rather than a data visualisation, there is a new crop of tools out there to help. Visual.ly is probably the most popular of these. Although primarily an online marketplace for infographic designers, its Create option lets you pick a template, connect it to your Facebook or Twitter account and get some nice cartoon graphics back. While the results are currently limited, it's a useful source of inspiration – both good and bad – and a site I expect to see grow in future, accepting more formats and creating more interesting graphics.

Visual.ly acts both as an online marketplace and simple creation tool for infographicsVisual.ly acts both as an online marketplace and simple creation tool for infographics

Interactive GUI controls

What happens when data visualisations become so interactive they themselves become GUI controls? As online visualisations evolve, buttons, drop-downs and sliders are morphing into more complex interface elements, such as little handles that let you manipulate ranges, changing the input parameters and the data at the same time. Controls and content are becoming one. The following tools will help you explore the possibilities this offers.

8. Crossfilter

As we build more complex tools to enable clients to wade through their data, we are starting to create graphs and charts that double as interactive GUI widgets. JavaScript libraryCrossfilter can be both of these. It displays data, but at the same time, you can restrict the range of that data and see other linked charts react.

by restricting the input range on any one chart, data is affected everywhere. This is a great tool for dashboards or other interactive tools with large volumes of data behind themCrossfilter in action: by restricting the input range on any one chart, data is affected everywhere. This is a great tool for dashboards or other interactive tools with large volumes of data behind them

9. Tangle

The line between content and control blurs even further with Tangle. When you are trying to describe a complex interaction or equation, letting the reader tweak the input values and see the outcome for themselves provides both a sense of control and a powerful way to explore data. JavaScript library Tangle is a set of tools to do just this. Dragging on variables enables you to increase or decrease their values and see an accompanying chart update automatically. The results are only just short of magical.

Tangle creates complex interactive graphics. Pulling on any one of the knobs affects data throughout all of the linked charts. This creates a real-time feedback loop, enabling you to understand complex equations in a more intuitive wayTangle creates complex interactive graphics. Pulling on any one of the knobs affects data throughout all of the linked charts. This creates a real-time feedback loop, enabling you to understand complex equations in a more intuitive way

Mapping

Mapping used to be a really hard task on the web. Then Google Maps came along and blew away every preconceived notion of how an online map should work. Soon after, Google released its Maps API, which allowed any developer to embed maps in their own sites.

Since then, the market has matured a great deal. There are now several options out there if you are looking to embed custom mapping solutions in your own data visualisation project, and knowing when to choose one over the others is a key business decision. Sure, you can probably shoehorn everything you need into any of these maps, but it's best not to have a hammer and view every problem as a nail.

10. Modest Maps

Modest Maps is a tiny mapping library. Weighing in at only 10kB, it is the smallest of options discussed here. This makes it very limited in its basic form – but don't let that fool you: with a few extensions, such as Wax, you can really make this library sing. This is a product ofStamenBloom and MapBox, so you know it has an interesting track record.

Teamed with additional libraries, such as MapBox's Wax (pictured), the tiny Modest Maps becomes a powerful toolTeamed with additional libraries, such as MapBox's Wax (pictured), the tiny Modest Maps becomes a powerful tool

11. Leaflet

Brought to you by the CloudMade team, Leaflet is another tiny mapping framework, designed to be small and lightweight enough to create mobile-friendly pages. Both Leaflet and Modest Maps are open source projects, which makes them ideal for using in your own sites: with a strong community backing them, you know they won't disappear any time soon.

Leaflet is a small, lightweight JavaScript library ideal for mobile-friendly projectsLeaflet is a small, lightweight JavaScript library ideal for mobile-friendly projects

12. Polymaps

Polymaps is another mapping library, but it is aimed more squarely at a data visualisation audience. Offering a unique approach to styling the the maps it creates, analagous to CSS selectors, it's a great resource to know about.

Aimed more at specialist data visualisers, the Polymaps library creates image and vector-tiled maps using SVGAimed more at specialist data visualisers, the Polymaps library creates image and vector-tiled maps using SVG

13. OpenLayers

OpenLayers is probably the most robust of these mapping libraries. The documentation isn't great and the learning curve is steep, but for certain tasks nothing else can compete. When you need a very specific tool no other library provides, OpenLayers is always there.

It isn't easy to master, but OpenLayers is arguably the most complete, robust mapping solution discussed hereIt isn't easy to master, but OpenLayers is arguably the most complete, robust mapping solution discussed here

14. Kartograph

Kartograph's tag line is 'rethink mapping' and that is exactly what its developers are doing. We're all used to the Mercator projection, but Kartograph brings far more choices to the table. If you aren't working with worldwide data, and can place your map in a defined box, Kartograph has the options you need to stand out from the crowd.

Kartograph's projections breathe new life into our standard slippy mapsKartograph's projections breathe new life into our standard slippy maps

15. CartoDB

Finally, CartoDB is a must-know site. The ease with which you can combine tabular data with maps is second to none. For example, you can feed in a CSV file of address strings and it will convert them to latitudes and longitudes and plot them on a map, but there are many other users. It's free for up to five tables; after that, there are monthly pricing plans.

CartoDB provides an unparalleled way to combine maps and tabular data to create visualisationsCartoDB provides an unparalleled way to combine maps and tabular data to create visualisations

Charting fonts

One recent trend in web development is to merge symbol fonts with font embedding to create beautifully vectorised icons. They scale and print perfectly, and look great on newer Retina devices too. A few of these fonts, such as FF Chartwell and Chartjunk, have been specially crafted for the purpose of displaying charts and graphs. They have the usual problem of OpenType not being fully supported in all browsers, but they're something to consider in the near future.

Getting serious

If you're getting serious about data visualisations, you need to move beyond simple web-based widgets onto something more powerful. This could mean desktop applications and programming environments.

16. Processing

Processing has become the poster child for interactive visualisations. It enables you to write much simpler code which is in turn compiled into Java. There is also a Processing.js project to make it easier for websites to use Processing without Java applets, plus a port to Objective-C so you can use it on iOS. It is a desktop application, but can be run on all platforms, and given that it is now several years old, there are plenty of examples and code from the community.

Processing provides a cross-platform environment for creating images, animations, and interactionsProcessing provides a cross-platform environment for creating images, animations, and interactions

17. NodeBox

NodeBox is an OS X application for creating 2D graphics and visualisations. You need to know and understand Python code, but beyond that it's a quick and easy way to tweak variables and see results instantly. It's similar to Processing, but without all the interactivity.

NodeBox is a quick, easy way for Python-savvy developers to create 2D visualisationsNodeBox is a quick, easy way for Python-savvy developers to create 2D visualisations

Pro tools

At the opposite end of the spectrum from Excel are professional data-analysis tools. If you are serious about data visualisation, you need to be at least aware of, if not proficient in, some of these. Industry-standard tools such as SPSS and SAS require expensive subscriptions, so only large institutions and academia have access to them, but there are several free alternatives with strong communities. The open-source software is just as good, and the plug-ins and support are better.

18. R

How many other pieces of software have an entire search engine dedicated to them? A statistical package used to parse large data sets, R is a very complex tool, and one that takes a while to understand, but has a strong community and package library, with more and more being produced. The learning curve is one of the steepest of any of these tools listed here, but you must be comfortable using it if you want to get to this level.

A powerful free software environment for statistical computing and graphics, R is the most complex of the tools listed hereA powerful free software environment for statistical computing and graphics, R is the most complex of the tools listed here

19. Weka

When you get deeper into being a data scientist, you will need to expand your capabilities from just creating visualisations to data mining. Weka is a good tool for classifying and clustering data based on various attributes – both powerful ways to explore data – but it also has the ability to generate simple plots.

A collection of machine-learning algorithms for data-mining tasks, Weka is a powerful way to explore dataA collection of machine-learning algorithms for data-mining tasks, Weka is a powerful way to explore data

20. Gephi

When people talk about relatedness, social graphs and co-relations, they are really talking about how two nodes are related to one another relative to the other nodes in a network. The nodes in question could be people in a company, words in a document or passes in a football game, but the maths is the same. Gephi, a graph-based visualiser and data explorer, can not only crunch large data sets and produce beautiful visualisations, but also allows you to clean and sort the data. It's a very niche use case and a complex piece of software, but it puts you ahead of anyone else in the field who doesn't know about this gem.

Gephi in action. Coloured regions represent clusters of data that the system is guessing are similarGephi in action. Coloured regions represent clusters of data that the system is guessing are similar

Further reading

  • A great Tumblr blog for visualisation examples and inspiration: vizualize.tumblr.com
  • Nicholas Felton's annual reports are now infamous, but he also has a Tumblr blog of great things he finds.
  • From the guy who helped bring Processing into the world: benfry.com/writing
  • Stamen Design is always creating interesting projects: stamen.com
  • Eyeo Festival brings some of the greatest minds in data visualisation together in one place, and you can watch the videos online.









本文转自 h2appy  51CTO博客,原文链接:http://blog.51cto.com/h2appy/1139102,如需转载请自行联系原作者
相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
目录
相关文章
|
4月前
|
数据可视化
数据可视化第二版-03部分-11章-相关
数据可视化第二版-03部分-11章-相关
|
24天前
|
数据可视化 前端开发 JavaScript
【数据可视化】—大屏数据可视化展示
【数据可视化】—大屏数据可视化展示
|
8月前
|
编解码 监控 数据可视化
数据可视化(二)
数据可视化(二)
352 0
|
8月前
|
人工智能 数据可视化 BI
数据可视化(一)
数据可视化(一)
95 0
|
监控 数据可视化 前端开发
数据可视化(一):介绍
数据可视化(一):介绍
数据可视化(一):介绍
|
数据可视化 大数据 数据挖掘
数据可视化介绍|学习笔记
快速学习数据可视化介绍
107 0
数据可视化介绍|学习笔记
|
数据可视化
ggpubr|让数据可视化更加优雅(上)
ggpubr是由Alboukadel Kassambara创建的,基于ggplot2的可视化包。主要用于绘制符合出版要求的图形。
207 0
ggpubr|让数据可视化更加优雅(上)
|
数据可视化
ggpubr|让数据可视化更加优雅(下)
ggpubr|让数据可视化更加优雅(下)
311 0
ggpubr|让数据可视化更加优雅(下)
|
数据可视化 数据挖掘 C++
从0到1,掌握数据可视化的基本技巧
大家好,我是爱学习的小熊妹。做运营的小哥哥小姐姐们,经常要做各种汇报ppt。其中怎么画图表,经常是很纠结的一件事。小熊妹也不是专业科班出身的数据分析师,但还是认真的总结了数据可视化的基本技巧。
180 0
从0到1,掌握数据可视化的基本技巧
|
数据可视化
数据可视化 30 个小技巧(一)
优秀的数据可视化图表只是罗列、总结数据吗?当然不是!数据可视化其真正的价值是设计出可以被读者轻松理解的数据展示,因此在设计过程中,每一个选择,最终都应落脚于读者的体验,而非图表制作者个人。 这里给大家总结了数据可视化的制作的30个小技巧,通过列举一些容易被忽略的常见错误,最终能够快速提升和巩固你的可视化制作水平。
数据可视化 30 个小技巧(一)