打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Matplotlib仍是Python可视化的终极武器


  • Python可视化让初学者沮丧的两面

  • 为什么还是matplotlib

  • matplotlib的历史

  • Matplotlib有什么优点?


从 (2003-2008)

到 (2008-2015)

Python可视化让初学者沮丧的两面

进入Python可视化领域的新手多数人都因为Python可视化生态的两面性有过非常沮丧的时候:

  • 一方面,好象没有一个很完美的Python可视化工具。不像R,有ggplot2,得到多数人的肯定;

  • 另一方面,Python的可视化工具又很多,让人无所适从

  • matplotlib

  • Pandas

  • Seaborn

  • ggplot

  • Bokeh

  • pygal

  • Plotly

  • plotnine....

前面已有那么多python可视化工具了,但2018年,有个德国学者还是借鉴R语言 ggplot2 包的语法开发了 plotnine 包,几乎实现了对 R 语言 ggplot2 语法的直接移植,正是Python可视化生态上述两面性的证明。

matplotlib 是python的标准绘图库,实现了对绘图各方面的自由定义,大家几乎都从这里开始过。但matplotlib学习的曲线非常陡峭。而其它包又各有侧重,因些或多或少存在功能不全、不同缺陷的问题。

我也是从matplotlib开始Python的可视化,但一段时间后,因为相同的原因转向其它工具。

在尝试了各种工具,走过一些弯路后,又回到 matplotlib,才找到学习 matplotlib的正确姿势,才明白matplotlib仍是Python可视化的终极武器,只是太多初学者一开始就跌落到了学习 matplolib那个最大的坑里。

最近与一些网友在群里交流讨论后,深有感触。就想把自己学习matplotlib的笔记和心得整理出来,希望能帮助大家绕过一些坑,更快地进入matplotlib世界的自由境界!

本系列会是一个长期写作计划,到底会有多少篇,我现在也不知道。但我知道,matplotlib最新版是3.1.1,它的官方文档长达近3000页!

为什么还是matplotlib

matplotlib的历史

John D. Hunter(1968 - 2012年),是美国神经生物学家,他是 matplotlib的原作者。

John D. Hunter 1968年出生于美国田纳西州的戴尔斯堡,毕业于麦卡利高中。他最初在普林斯顿大学学习,后来于2004年在芝加哥大学获得神经生物学博士学位。

在攻读神经生物学博士期间,Jonh D. Hunter 经常使用MATLAB进行数据分析和可视化。当他开始使用EEG(脑电图)数据时,他就在MATLAB中开发了一个EEG分析应用程序来与数据交互。

随着分析的深入,需要与数据库、http服务器交互,需要操纵复杂的数据结构,应用程序的复杂性不断增加,MATLAB作为编程语言的局限性日益突显。

John D. Hunter决定转向Python,当 Jonh D. Hunter 搜索Python绘图包时,有几个要求:

绘制的图形要达到出版的质量,一个重要的要求是文本显示不能有锯齿;包含Postscript输出可嵌入Tex排版的eps格式图像的功能;可嵌入到图形用户界面中开发应用程序;代码应该足够简单,容易理解并扩展它;绘制图形很简易。

找不到适合符合上述要求的Python 绘图软件包,Jonh D. Hunter 做了很多Python程序员会做的事情:卷起袖子自己干!

因为长期使用Matlab的经验,他决定模仿MATLAB的绘图功能,理由如下:

  • MATLAB的东西做得很好,绘图质量很高;许多人拥有大量的MATLAB经验,因此他们可以快速上手

  • Matplotlib就这样诞生了,并且名字都带有Matlab的影子!

非常不幸,John D. Hunter 2012年因癌症的治疗并发症去世! John D. Hunter 走了,但他给开放的互联网社区留下了伟大的 Matplotlib。

Matplotlib目前的首席开发人员是Thomas A. Caswell。很多人为matplotlib的维护做出了贡献,应该向他们致敬!

Matplotlib有什么优点?

虽然Matplotlib源于模仿MATLAB,但是它却不同于MATLAB,与MATLAB相比它的优势在于:

  1. Matplotlib是Python的拓展库,具有Python语法面向对象、易读、易维护、代码简洁的遗传优势。

  2. Matplotlib依托于Python,借助Python的强大的可拓展性,Matplotlib可以在许多不同的环境中被使用。

  3. 生成多平台、易交换的图形硬拷贝,如自动生成PostScript文件以发送给打印机或发布者;

  4. 可用于Python脚本,Python和IPython shell,Jupyter笔记本,

  5. 在Web上应用程序服务器上部署Matplotlib,生成PNG输出包含在动态生成的网页中;

  6. 在Windows上以交互方式使用Matplotlib。

  7. 将Matplotlib嵌入到运行在Windows,Linux和Macintosh OS X上的应用程序中。

  8. 免费。MATLAB是一款商业软件且价格昂贵,而Matplotlib是开源免费的;

  9. Matplotlib 实现了几乎是完全自主控制的图形定义功能,因此只要你能想到的图形,都能用Matplotlib绘制出来。

但也正是追求这些优点,导致了matplotlib库中的模块、类、类的方法和属性、各种对象的设置参数错综复杂,学习它的路径陡峭,常让初学者一头雾水。

尤其是各种书籍、教程都从 pyplot函数绘图开始,并以函数绘图为重点,让初学者照猫画虎,在学习matplotlib的路径上挖了一个最大的坑。

原创文章!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
70多个方法,轻松入门Python可视化编程
为什么越来越多的硕士博士研究生放弃matlab开始使用matplotlib?
Python&Matlab科研绘图大比拼 (2)
如何在论文中画出漂亮的插图? | 知乎精选
「独家」Python数据可视化利器Matplotlib,50 干货分享
这10个python数据可视化库,通吃任何领域
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服