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

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

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

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

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

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

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

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

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

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

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 并生成散点图。所以我的一半代码是关于如何读取数据,另一半像以下这样

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

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

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

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

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

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

译者:linfanangel

python画气泡图_画气泡图的十二个图表库相关推荐

  1. 高翔博士SLAMBOO2十二讲代码库中的三方库没有下载下来 ,需要手动对三方库单独下载的git的命令如下

    高翔博士SLAMBOO2十二讲代码库中的三方库没有下载下来 git clone --recursive https://github.com/gaoxiang12/slambook2.git 需要手动 ...

  2. 几何画板画椭圆_几何画板降龙十九式视频教程每天只要十分钟

    少侠,请先看几张宝图 图片来自百度搜索做这样神奇的动画难?NononoSoEasy!!!来西偶得一绝世武功秘籍:几何画板[遥想当年,上大学的时候,去上电脑课,得穿了鞋套进机房,机房里蹲着一排排呆头呆脑 ...

  3. 名画192 佚名《画岩壑清晖册十二开》

    这组册页为绢本,共十二幅描绘四季的图卷,除首幅钤印"嘉庆御览之宝"外,其余皆无款印. 凡画有关季节,必具深刻细致观察与体验.在天莫若云.雨.雪.月,在地莫若水,树.山.花,在动物莫 ...

  4. flexbox布局_使用Flexbox制作十二列布局

    flexbox布局 演示地址 If there's one thing flexbox excels at, it's twelve-column layouts. In a twelve-colum ...

  5. python封装c++_用pybind11封装C++实现的函数库

    现有若干用C++编写的函数,为了能够用Python调用它们,可以通过pybind11将它们封装到一个Python模块中,在编写Python程序时只要导入该模块便能使用这些函数. 一.实现步骤 用C++ ...

  6. pythonpost四种方式自杀未遂_自测练习十二

     自测练习十二  所属章节  第十二讲 青少年的心理社会问题 / 自测练习  分值  0  截止提交时间  2013.06.15  作业类型  必做作业 第十二讲 练习题 一.概念解 ...

  7. Python在机器学习中的应用--第十二章深度学习

    第十二章深度学习 import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import Font ...

  8. python同切圆_画一组同切圆 画一组同心圆 画一个五角星 画一个黄色实心五角星 turtle.up() turtle.goto(0,-100) turtle.down() ...

    1.画一组同切圆 >>> import turtle >>> turtle.circle(10) >>> turtle.circle(15) &g ...

  9. 用python画佩奇_画佩奇 - python代码库 - 云代码

    [python]代码库from turtle import* def nose(x,y):#鼻子 pu() goto(x,y) pd() seth(-30) begin_fill() a=0.4 fo ...

最新文章

  1. 微娱推客——青龙羊毛
  2. ML之FE:数据处理—特征工程之稀疏特征的简介、如何处理、案例应用之详细攻略
  3. .NET Core SignalR Redis底板详解(前言)
  4. 命令 / Linux / netstat 详解
  5. it招聘的一些门道与招聘数据分析(持续更新)
  6. LeetCode 287. 寻找重复数(BitMap)
  7. 英语学习笔记2019-11-22
  8. Android中怎么方便的调试关机充电
  9. 《深入浅出数据分析》笔记一
  10. 腾讯笔试——安排机器 【 题目描述】小 Q 的公司最近接到 m 个任务, 第 i 个任务需要 xi 的时间去完成, 难度等级为 yi。 小 Q 拥有 n 台机器, 每台机器最长工作时间 zi, 机器等
  11. 解决spring源码构建时缺失spring-cglib-repack和spring-objenesis-repack问题
  12. Ubuntu包依赖损坏的解决unmet dependencies
  13. unsw计算机专业排名,新南威尔士大学UNSW计算机科学Computer Science专业排名第54位(2021年THE世界大学商科排名)...
  14. response setHeader 设置下载中文文件名乱码问题
  15. 解决无法从公司 Maven 私服下载依赖的问题
  16. 如何使用 Diago 诊断 Go 程序中的 CPU 和内存使用情况
  17. 技术图文:基于《权力的游戏》数据集学Pandas
  18. 软件测试-七项测试的基本原则
  19. C# winforms datagridview 设置右键菜单【完整版】
  20. Ensemble+GAN:对抗式生成网络遇上集成学习

热门文章

  1. 未成年人勿进 谨以献给1980~1990出生的人(三)
  2. javascript网页设计期末作业 购物网站
  3. Linux基本命令-权限、运维相关
  4. vm虚拟机安装以及镜像和网路配置
  5. Java利用接口计算立体图形的表面积和体积
  6. 如何解决 Critical dependency: the request of a dependency is an expression ?
  7. 注册德国商标的详细介绍
  8. 理解ES6中暂时性死区TDZ
  9. K8S 在微服务架构下做服务注册中心的一种思路
  10. springboot+redis实现微博热搜排行榜