作家
登录

高效使用Python可视化工具Matplotlib

作者: 来源: 2017-07-05 05:47:58 阅读 我要评论

Matplotlib是Python中最常用的可视化对象之一,可以异常便利地创建海量类型的2D图表和一些根本的3D图表。本文重要介绍了在进修Matplotlib时面对的一些挑衅,为什么要应用Matplotlib,并推荐了一个进修应用Matplotlib的步调。

对于新手来说,进入Python可视化范畴有时可能会令人认为沮丧。Python有很多不合的可视化对象,选择一个精确的对象有时是一种挑衅。 例如,即使两年以前了,这篇《Overview of Python Visualization Tools》是引导人们到这个网站的顶级帖子之一。 在那篇文┞仿中,我对matplotlib留下了一些暗影,并在分析过程中不再应用。 然而,在应用诸如pandas,scikit-learn,seaborn和其他数据科学技巧栈的python对象后,认为丢弃matplotlib有点过早了。说实话,之前我不太懂得matplotlib,也不知道如安在工作流程中有效地应用。

如今我花时光进修了个中的一些对象,以及若何应用matplotlib,已经开端将matplotlib看作是弗成或缺的对象了。这篇文┞仿将展示我是若何应用matplotlib的,并为刚入门的用户或者没时光进修matplotlib的用户供给一些建议。我坚信matplotlib是python数据科学技巧栈的重要构成部分,欲望本文能赞助大年夜家懂得若何将matplotlib用于本身的可视化。

为什么对matplotlib都是负面评价?

在我看来,新用户进修matplotlib之所以会见临必定的挑衅,重要有以下几个原因。

两种接口引起混淆的原因在于,在stack overflow社区和谷歌搜刮可以获得大年夜量信息的情况下,新用户对那些看起来竽暌剐些类似但不一样的问题,面对多个解决筹划会认为困惑。大年夜我本身的经历说起。回想一下我的旧代码,一堆matplotlib代码的混淆——这对我来说异常纷乱(即使是我写的)。

这是2014年的发卖交易数据。为了使这些数据简短一些,我将对数据进行聚合,以便我们可以看到前十名客户的总购买量和总发卖额。为了清跋扈我还会在画图中从新定名列。

因为我们有fig对象,我们可以用多个选项来保存图像:

关键点

matplotlib的新用户应钙揭捉?习应用面向对象的接口。

matplotlib的另一个汗青性挑衅是,一些默认风格选项相当没有吸引力。 在R说话间界里,可以用ggplot生成一些相当酷的画图,比拟之下,matplotlib的选项看起来竽暌剐点丑。令人欣慰的是matplotlib 2.0具有更美不雅的样式,以及异常便捷对可视化的内容进行主题化的才能。

应用matplotlib我认为第三个挑衅是,当绘制某些器械时,应当纯真应用matplotlib照样应用建立在其之上的类似pandas或者seaborn如许的对象,你会认为困惑。任何时刻都可以有多种方法来干事,对于新手或不常用matplotlib的用户来讲,遵守精确的路径是具有挑衅性的。将这种困惑与两种不合的API接洽起来,是解决问题的桥绫桥。

为什么保持要用matplotlib?

尽管有这些问题,然则我光荣有matplotlib,因为它异常强大年夜。这个库许可创建几乎任何你可以想象的可视化。此外,环绕着它还有一个丰富的python对象生态体系,很多更先辈的可视化对象用matplotlib作为基本库。如不雅在python数据科学栈中进行任何工作,都将须要对若何应用matplotlib有一个根本的懂得。这是本文的其余部分的重点——介绍一种有效应用matplotlib的根本办法。

在这个例子中,用nrows和ncols来指定大年夜小,如许对新用户来说比较清楚。在示例代铝闼楝经常看到像1,2如许的变量。我认为应用定名的参数,之后在查看代码时更轻易懂得。

根本前提

如不雅你除了本文之外没有任何基本,建议用以下几个步调进修若何应用matplotlib:

  1. 进修根本的matplotlib术语,尤其是什么是图和坐标轴
  2. 始终应用面向对象的接口,大年夜一开端就养成应用它的习惯
  3. 用基本的pandas画图开端你的可视化进修
  4. 用seaborn进行更复杂的统计可视化
  5. 用matplotlib来定制pandas或者seaborn可视化

这幅来自matplotlib faq的图异常经典,便利懂得一幅图的不合术语。

大年夜多半术语都异常直接,但要记住的要点是,Figure是最终的图像,可能包含一个或多个坐标轴。坐标轴代表一个零丁的划分。一旦你懂得这些内容,以及若何经由过程面向对象的API拜访它们,下面的步调才能开端进行。

假设你对这个画图的要点很知足,下一步就是定制它。应用pandas画图功能定制(如添加标题和标签)异常简单。然则,你可能会发明本身的需求在某种程度上超出该功能。这就是我建议养成如许做的习惯的原因:

这些术语常识有另一个好处,当你在网上看某些器械时,就有了一个起点。如不雅你花时光懂得了这一点,才会懂得matplotlib API的其余部分。此外,很多python的高等软件包,如seaborn和ggplot都依附于matplotlib。是以,懂得这些基本常识后再学那些功能更强大年夜的框架会轻易一些。

最后,我不是说你应当避免选择例如ggplot(aka ggpy),bokeh,plotly或者altair等其他更好的对象。我只是认为你须要大年夜对matplotlib + pandas + seaborn 有一个根本懂得开端。一旦懂得了根本的可视化技巧,就可以摸索其他对象,并根据本身的须要做出明智的选择。

入门

本文的其余部分将作为一小我门教程,介绍如安在pandas中进行根本的可视化创建,并应用matplotlib自定义最常用的项目。一旦你懂得了根本过程,进一步的定制化创建就比拟较较简单。

重点讲一下我碰到的最常见的画图义务,如标记轴,调剂限制,更新画搁笔题,保存图片和调剂图例。如不雅你想跟着持续进修,在链接https://github.com/chris1610/pbpython/blob/master/notebooks/Effectively-Using-Matplotlib.ipynb 中包含附加细节的标记,应当异常有效。

 1/7    1 2 3 4 5 6 下一页 尾页

  推荐阅读

  微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)

基于微办事架构和Docker容器技巧的PaaS云平台扶植目标是给我们的开辟人员供给一套办事快速开辟、安排、运维治理、持续开辟持续集成的流程。平台供给基本举措措施、中心件、数据办事、云办>>>详细阅读


本文标题:高效使用Python可视化工具Matplotlib

地址:http://www.17bianji.com/lsqh/36034.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)