python画气泡图_画气泡图的十二个图表库

146882284760751986.JPEG

146882284837392096.JPEG

R – ggplot2Native R 可以来画图,但 ggplot2 才是乐趣的开始。我花了很多时间才弄懂它 – 特别是有许多方式来写ggplots2 命令。最终,我确定把一种灵活和操作简单的方法呈现给大家。

146882284859890872.JPEG

146882284908632080.JPEG

R – ggvis我也是最近才听说ggvis。和Bokeh 类似,它让过去不想交互的东西实现交互:Ggvis 的图建立在Vega 上(一个建立在D3.js 上的Java库)。它的语法和dplyr 很像,但我不是很喜欢变量前的~。 我也不能把log-刻度与将x-刻度的范围设成零结合起来。

146882284923049295.JPEG

146882284977405031.JPEG

许多R库可以生成Java 可视化,这些方法可以在htmlwidgets-Website 上找到。Juuso Parkkinen 对 R 的可视化库进行了很好的对比。

Python – matplotlibMatplotlib 是Python 中的ggplot2 库。这个库使利用Python 画图变得简单。我是python的新手,以至于卡在如何导入 csv’s 上很久。 Pandas 库最终帮我解决了这个问题。让我惊讶的是,每次都要转化气泡的大小。但是从我尝试的python所有库来看,matplotlib 绝对是最简单的一个。

146882284992959598.JPEG

146882285083318161.JPEG

Python – SeabornSeaborn 是在matplotlib 的基础上建立的。它比matplotlib 用在更多的统计可视化上,并且在画许多不同变量上有很大优势。 对于非统计学家,这个库可能过于强大了:它有两种合适的方法来创造散点图. Seaborn 默认可以画回归模型的(也叫作: 趋势线)。

146882285103815392.JPEG

146882285128174678.PNG

Python – Bokeh我发现Bokeh 很适合初学者,因为它生成一个HTML 文件 并且很容易实现交互。 他实现了分析语言(像ggplot2)和 数据展示(像D3.js)的完美结合。我个人认为,用Candas 代替 SVG’S 的渲染是它的一大败笔。而且在我的程序中出现许多诡异的错误,这些让我很失望。

146882285163498416.JPEG

146882285198714462.JPEG

更多的关于python可视化工具的对比,可以参照Mode Analytics, Practical Business Python, Dataquest.

ProcessingProcessing 是世界上为设计师编码的入门级语言。Processing 最大的优点是什么呢? 它非常非常的灵活,相当于甚至超过D3.js – 同时它理解和编写都很简单。那缺点呢?它并不是针对数据可视化的语言。 Processing 的坐标系并不是在左下角开始的,而是在左上角,所以你需要翻转整个画布。坐标轴是相当复杂的,并且输出结果不是为WEB 来设计的。不过 Java 的p5.js 或 Processing.js库可以解决这些。

146882285217759553.JPEG

146882285234741322.PNG

D3.jsD3.js 在 当今web领域高定制、交互性数据可视化上是无可替代的。但是利用D3.js 来画简单的气泡图就像只是用了管弦乐队中的一个乐器中的一个音调。

D3.js 是 Java 的一个库。所以你不需要定制太多自己的东西。缺点呢?冗长的代码。优点呢? 关注与考虑设置中的单一元素。例如:在D3 中,我们需要自己来定义所有的范围和刻度,这样画气泡图时就可以定义自己的气泡大小。 除了Processing,文章中列出的所有语言都做不到这一点。

146882285260928513.JPEG

146882285286185406.JPEG

146882285334428524.JPEG

D3.js TemplatesD3.js 是结构复杂的,但可以画出90%的标绘图(或者99%,这个数字继续提高)。所以一些聪明的人就想:让我们充分利用D3.js的力量,寻找一种简单的方式来绘制出所有的普通图。我们叫它附加D3.js 模板库。它们是需要D3库的Java 库。我尝试了三种我熟悉的库:C3.js, D4.js, NV3D.js

C3.js, 我第一次遇到了这样的问题“你得到的csv 不是你想要的数据样式”。 同时,我喜欢的csv 文件得到一个奇怪的样子,这意味着它是不可理解的。

D4.js 我尝试了一个小时,失败了。 我的Chrome 控制台不显示任何错误,我用google来查,也没得到什么结果,最后放弃了。 这让我意识到在网络上有一个可读的说明文档,对一门编程语言来说是多么的重要。作者 Mark Dagett,D4的创造者,刊登了如何用D4画气泡图的方法。

NVD3.js 有很好的文档,无疑使用的人比D4多。NV3D.js 只能用于非常严格的数据结构。但这里有一些帮助,告诉你如何读取CSV 并生成散点图。所以我的一半代码是关于如何读取数据,另一半像以下这样

146882285351583587.JPEG

146882285383202026.JPEG

Highchart.js简单的说,我失败了。 我在多个学堂中学习了如何导入csv,看起来有多个导入方法。最终,我导入了CSV文件,但是不能将我的数据转化到气泡图中。

你会问,什么问题呢?问题是你不能给坐标轴指定变量。 例如,在Highcharts中,你不能将“健康”变量放到y轴。数据要按照csv中的正确顺序来放。但是如果你把数据放到了合适的位置—Highcharts 会变的很漂亮。你仅用几行Java代码就可以得到漂亮的图。 Highcharts公司友善的朋友帮助我画了下面的图。缺失的是一个叫做“seriesMapping”函数, 它用来将列(例如 “0”、“1”)映射到坐标轴

146882285419979454.JPEG

146882285431777055.JPEG

146882285495387925.JPEG

Vega是由华盛顿大学数据交互实验室的研发的, 它的重要特点之一是叫做 Vega 的“可视化的语法”以及它的轻量级兄弟Vega-Lite。Vega 的做图库十分类似D3.js, 但是它缺少一点灵活性。 比起D3.js,Vega 建立图表相当的容易。除了JSON-结构(一种将代码放入引号和大括号的结构)有一点讨厌,其他方面还是相当令人惊喜的。

146882285518639866.JPEG

146882285536732124.JPEG

146882285561536739.JPEG

146882285585964425.PNG

Vega Lite… Vega Lite 比Vega 要简单灵活,拥有更高级的可视化语法。 和Vega 一样,它也是JSON 式的结构,但是它设置了更多的默认值。Vega 公司的朋友告诉我如何来设置图标的高度和宽度。 看起来并不是很直观,但没有问题。输出结果看起来和Vega-Lite 的作者Polestar 的版本一样。

146882285614975688.JPEG

146882285753985319.PNG

如果你打算写自己的代码:这些图表库的所有代码都可以在GitHub 上找到。如果你对代码本身或运行中有任何疑问,请与我联系。

英文原文:http://lisacharlotterost.github.io/2016/05/17/one-chart-code/

译者:linfanangel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值