大概在4年前我就了解到了,在python中也有一个类似R 语言ggplot2实现的模块,叫做ggpy,即ggplot for python。当时没有实际使用ggpy,如今使用plotnine,就好奇为什么会有两个功能如此雷同的模块被开发出来呢?如果不是重复造轮子,那哪个更好呢?于是乎,有了这篇文章。

首先,来到plotnine的官网,关于plotnine的历史和开发目的,他是这么说的:

开始使用plotnine是为了改善ggpy的scalling功能。但估计修修补补解决不了问题,所以另起炉灶,于是乎有了plotnine,大概就是这么个经过。

并且plotnine是建立在python生态上的:matplotlib - Plotting backend.

pandas - Data handling.

mizani - Scales framework.

statsmodels - For various statistical computations.

scipy - For various statistical computation procedures.

由此,似乎说明ggpy不够好,所以有了plotnine啊。可是这毕竟是plotnine作者自己的说辞,可能并不客观。还有,也没回答具体哪些方面plotnine比ggpy更好啊,从一个使用者的角度,这个很重要!!!

于是找到github上相关的issues: link1, link2,基本上解答了我的问题,总结来有以下几个方面:自2016年起停止开发(Latest commit b6d23c2 on Nov 20, 2016)

无法完全表示R ggplot2库:ggpy只是与Matplotlib语法类似的语法,因此,用户获得了绘图语法申明清晰,而灵活性却丧失了。例如,受限于geoms和 stats的不可组合,缺乏与适当缩放后端(backend)的集成。plotnine包目前仍在积极开发中(Latest commit9a324be5 days ago)。

使用非常相似的语法(R用户的一致性),提供了原始R ggplot2软件包的更完整的Python实现。因此,语法也类似于ggpy包。

Plotnine构建在matplotlib之上,因此,可plotnine的高级功能入手,并在需要时可以使用matplotlib函数进一步自定义由plotnine创建的fig/ax对象。

该项目的中长期前景在很大程度上取决于科学的python生态系统。最主要是取决于Matplotlib的发展,scipy软件包有一些影响

为plotnine做了这么多宣传,那么其有没有不足呢?答案是肯定的。

(1)关于内存:

之前在使用R ggplot2进行可视化时,就出现过内存的问题,那么plotnine是否存在某些特定的内存优化呢?

对于这个问题,plotnine作者has2k1的回答是:

如果在使用R ggplot2时遇到内存问题,那么使用plotnine也会遇到。因为plotnine也会对dataframes进行复制。当Pandas实libpandas(并获得copy-on-write)当前预计在2.0版左右时,应该会减轻这种情况。

这就有点画饼的味道了,目前pandas最新版才1.0.3呢

(2)关于开源协议:

虽然plotnine的作者说会一直开发该包,但还是有人从plotnine使用的开源协议看出来一些端倪,并追问作者从ggplot2复制了算法/代码,还是只是从API复制了?如果仅是后者,则API是否受版权保护是一个不断争议的问题。ggplot2 采用的是GPL-2协议

ggpy采用的BSD 2协议发布的,该协议比plotnine的GPLv2协议更宽松

首先,让我们来聊聊不同开源协议的区别:

python ggplot_python数据可视化系列---谁是ggplot2的更好python实现相关推荐

  1. python交互式数据可视化_python数据可视化工具

    熟知python的人都知道,python上常用的一款数据可视化工具是Matplotlib,但是Matplotlib是静态的.那么,Python中除了matplotlib外,还有哪些数据可视化工具呢?其 ...

  2. python seaborn_Python数据可视化,seaborn如何做出非常规图表

    此系列文章收录在公众号中:数据大宇宙 > 数据可视化 > mpl 转发本文并私信我"python",即可获得Python资料以及各种心得(持续更新的) 前言 上一节(P ...

  3. 数据可视化系列(三):布局格式定方圆

    前言 期待了好久的datawhale可视化教程终于出来了,这次标题狠有文艺范儿,哈哈哈 这次我主要目的是最近要写篇论文,也正好为以后建模画图打劳基础~ 大家可以多看看官方教程: 中文官方网站:http ...

  4. 数据可视化系列(一):Matplotlib初相识

    前言 期待了好久的datawhale可视化教程终于出来了,这次标题狠有文艺范儿,哈哈哈 这次我主要目的是最近要写篇论文,也正好为以后建模画图打捞基础~ 大家可以多看看官方教程: 中文官方网站:http ...

  5. python实现数据可视化_使用Matplotib python实现数据可视化

    python实现数据可视化 I Feel: 我觉得: In today's digital world data has become as important as air. Machines &a ...

  6. python echarts数据可视化实战

    python echarts数据可视化 python echarts数据可视化实战 引言 词云分析 柱状图分析 饼图分析 总结 python echarts数据可视化实战 引言 引言 上一章我给大家用 ...

  7. python与excel做数据可视化-用Python进行数据可视化的10种方法

    原标题:用Python进行数据可视化的10种方法 2015-11-19 关于转载授权 大数据文摘作品,欢迎个人转发朋友圈,自媒体.媒体.机构转载务必申请授权,后台留言"机构名称+转载&quo ...

  8. python代码示例图形-纯干货:手把手教你用Python做数据可视化(附代码)

    原标题:纯干货:手把手教你用Python做数据可视化(附代码) 导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一.可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转 ...

  9. 【Python】数据可视化教程来了!

    来自:Datawhale????数据可视化小组 开源初衷 Matplotlib可以说是python数据可视化最重要且常见的工具之一,几乎每个和数据打交道的人都不可避免,还有大量可视化工具是基于它的二次 ...

最新文章

  1. EtherType :以太网类型字段及值
  2. windows7如何查看端口被占用
  3. osgi学习之---扩展点理解
  4. 作者:曾琛(1987-),女,就职于中国科学院计算技术研究所。
  5. 利用 ASP.NET 2.0 中的 Web 部件和个性化释放站点的潜能 --作者:Steven A. Smith
  6. 《深入剖析Tomcat》一3.3 小结
  7. 电子游戏销售数据分析
  8. 美赛常用查数据查文献网站
  9. Java使用 PDFBox 从 pdf 中提取图像
  10. Composer的基本使用
  11. 解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists).
  12. Revit中绘图填充与模型填充的区别
  13. 计算机记录乐器,2013年计算机考试题模拟考试2套题.doc
  14. 6.6 PowerBI系列之DAX函数专题 -调节器TREATAS动态建立关系
  15. 发微博怎么才能把自己的地理位置改成其他国家
  16. [raspberry]树莓派无线鼠标延迟问题
  17. 计算机网络-9-局域网交换与VLAN
  18. oracle no privileges on tablespace 'USERS
  19. reactos操作系统实现(47)
  20. JN5169 系统控制器 API 函数表

热门文章

  1. cocos2d之列表容器节点再排序
  2. php sort函数,php中sort函数的功能起什么作用呢?
  3. 随想录(读书和选书)
  4. 一步一步写算法(之递归和堆栈)
  5. 用汇编的眼光看C++(之class构造、析构)
  6. c 匹配mysql密码,MySQL设置密码的三种方法
  7. 赛门铁克linux安装教程,Symantec赛门铁克14.2版本服务端安装教程及配置教程(三)...
  8. jsp下拉列表java_java – JSP:下拉列表2取决于下拉列表1
  9. java replace第二个_java - 错误的第二个参数类型:从片段内调用.replace() - 堆栈内存溢出...
  10. vue中的浏览量_Laravel 5.3和vuejs实现文章浏览次数问题