李林 编译整理
量子位 出品 | 公众号 QbitAI

Matplotlib 3.0来了!新版Matplotlib已能通过PyPI安装了,不过,这一版本只支持python 3,Python 2死忠还得继续用2.2.x版本。

作为最热门的Python 2D绘图工具之一,你看到的论文、教程里,有不少插图出自它手。

3.0版总共有16项变化:

改进了默认后端选择

现在,内置后端在运行时按顺序尝试,直到导入了其中一个为止,不再要求默认后端必须作为构建过程的一部分来设置。

无头Linux服务器(由未定义的DISPLAY env来标识)不会选择GUI后端。

新的循环调色板

添加了两种新调色板:twilight和twilight_shifted。它们都以相同的颜色开始、结束,每个调色板的两半是对称的,亮度相同颜色不同。

因为是循环的,所以它们很适合用在相位角、罗盘方向、一天中的时间等循环数据来上。

能按固定的数量级缩放轴

想要实现这个功能,需要为scilimits参数Axes.ticklabel_format设置相同的非零上限和下限。

比如说,要把y轴缩放100万倍(1e6),代码是这样的:

ax.ticklabel_format(style='sci', scilimits=(6, 6), axis='y')

scilimits=(0, 0)的行为还和原来一样,Matplotlib会根据轴上的数值来调整数量级,不让它保持固定。以前,设置scilimits=(m, m)和设置scilimits=(0, 0)是一样的。

为mpl_toolkits新增AnchoredDirectionArrows

AnchoredDirectionArrows是一个新增的mpl_toolkits类,它能绘制一对正交箭头,在2D图表上指示方向。

有几个可选参数能改变布局,比如旋转箭头、改变颜色等等,箭头的头尾两部分长度、位置、宽度都能调整。

彩条能准确显示次要刻度线了

新增了colorbar.Colobar.minorticks_on()方法(method),用来正确显示彩条上的次要刻度标记;与之相对的colorbar.Colobar.minorticks_off(),可以移除次要刻度。

自动处理颜色条上的标记

以前,在大号彩条上加了标记(比如次要刻度线)之后,缩小彩条,标记就看起来很恐怖。

现在,标记的数量可以随着彩条大小响应式变化了。

不再自动给重名文件改名

以前,用GUI的保存对话框来保存图表文件时,如果它和磁盘上已有文件重名,Matplotlib会自动加个后缀。

现在,遇到重名的情况,Matplotlib会提示用户,询问是否覆盖。

可以设置图例标题字号了

现在,可以通过title_fontsize这个kwarg来设置Figure.legend和Axes.legend的字号了,还新增了一个rcParams["legend.title_fontsize"]

二者的默认值都是None,也就是说图例标题和轴标题的默认字号是相同的。

注意:是图例标题,不是图例本身。

rcParams支持用markevery设置axes.prop_cycle属性

Matplotlib里的rcParams设置对象,现在支持通过用markevery Line2D对象property的循环器来配置axes.prop_cycle属性(attribute)。

pgf后端支持多页PDF

from matplotlib.backends.backend_pgf import PdfPagesimport matplotlib.pyplot as plt

with PdfPages('multipage.pdf') as pdf:    # page 1    plt.plot([2, 1, 3])    pdf.savefig()

    # page 2    plt.cla()    plt.plot([3, 1, 2])    pdf.savefig()

默认饼图终于圆了

这是一个重大进步。(正经脸.jpg)

以前,Matplotlib的一大槽点就是饼图都是蛋形的。如果你还想调回原来的默认蛋型饼图,可以用ax.set_aspect("auto")或者plt.axis("auto")把纵横轴的比设为自动。

新增SubplotBase.get_gridspec

通过这种新方法,用户可以轻松获取gridspec。

import matplotlib.pyplot as plt

fig, axs = plt.subplots(3, 2)gs = axs[0, -1].get_gridspec()

# remove the last columnfor ax in axs[:,-1].flatten():  ax.remove()

# make a subplot in last column that spans rows.ax = fig.add_subplot(gs[:, -1])plt.show()

轴标题不会再与x轴重叠了

以前,如果轴标题与x轴重叠,需要手动调整。

现在,如果x轴在顶部,轴标题会自动移到它上方。用户想手动调整标题位置依然可以,不过有个小问题:不能放在默认的位置,放了系统就会自动移开。如果非要放,可以选一个接近的数字。比如说,ax.title.set_position(0.5, 1.0)就会被自动移开,改成ax.title.set_position(0.5, 1.01)就可以了。

GridSpec有了新便捷方法

现在,gridspec.GridSpecgridspec.GridSpecFromSubplotSpec都有了便捷新方法,可以分别用Figure.add_gridspecSubplotSpec.subgridspec替代。

import matplotlib.pyplot as plt

fig = plt.figure()gs0 = fig.add_gridspec(3, 1)ax1 = fig.add_subplot(gs0[0])ax2 = fig.add_subplot(gs0[1])gssub = gs0[2].subgridspec(1, 3)for i in range(3):    fig.add_subplot(gssub[0, i])

Figure有了add_artist方法

Figure类新增了add_artist方法,可以直接用artist和figure相加。例如:

circ = plt.Circle((.7, .5), .05)fig.add_artist(circ)

:math:指令重命名为:mathmpl:

matplotlib.sphinxext.mathmpl提供的第:math:个角色已经重命名为:mathmpl:,避免了和Sphinx 1.9默认提供的:math:冲突。

当使用1.8以下版本的Sphinx,:math::mathmpl:都能反向兼容。

传送门

安装Matplotlib和依赖项,用这两行代码:

python -mpip install -U pippython -mpip install -U matplotlib

想了解更多详情,走这个传送门:

https://matplotlib.org/index.html

加入社群

量子位AI社群28群开始招募啦,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式;

此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。

进专业群请在量子位公众号(QbitAI)对话界面回复关键字“专业群”,获取入群方式。(专业群审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

Python可视化工具Matplotlib 3.0版出炉,改进默认后端选择,饼图终于变圆了相关推荐

  1. python怎么用matplotlib_高效使用Python可视化工具Matplotlib

    Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表.本文主要介绍了在学习Matplotlib时面临的一些挑战,为什么要使用Matplo ...

  2. python matplotlib_高效使用 Python 可视化工具 Matplotlib

    来源 / python开发 作者 / 伯乐在线李大萌 Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表.本文主要推荐一个学习使用Ma ...

  3. python可视化工具:matplotlib+pyecharts使用详解

    准备 一.matplotlib快速入门 二.matplotlib进阶–绘制常见的图表 1.绘制折线图 2.绘制柱状图 3.绘制条形图 4.绘制直方图 5.绘制饼状图 6.绘制散点图 7.绘制堆叠图 三 ...

  4. Python数据可视化工具matplotlib(五)-- 面积图、填图、饼图

    面积图.填图.饼图 plt.plot.area() plt.fill(), plt.fill_between() plt.pie() import numpy as np import pandas ...

  5. python 数据可视化工具--matplotlib

    数据可视化工具--matplotlib 1. 条形图 1.1 垂直条形图 1.2 水平条形图 1.3 堆叠条形图 1.4 水平交错条形图 2.饼状图 3. 直方图与核密度曲线 4. 箱线图 5. 折线 ...

  6. Python中的数据可视化工具与方法——常用的数据分析包numpy、pandas、statistics的理解实现和可视化工具matplotlib的使用

    Python中的数据可视化工具与方法 本文主要总结了: 1.本人在初学python时对常用的数据分析包numpy.pandas.statistics的学习理解以及简单的实例实现 2.可视化工具matp ...

  7. qpython3绘图_比Excel制图更强大,Python可视化工具Altair入门教程

    比 Excel 制图更强大,Python 可视化工具 Altair 入门教程 数据转化成更直观的图片,对于理解数据背后的真相很有帮助.如果你有这方面的需求,而且还在使用 Python,那么强烈推荐你试 ...

  8. matplotlib画图_Python数据可视化工具Matplotlib之画图(四)(饼状图)

    概述 在<Python数据可视化工具Matplotlib之画图(三)(柱状图)>中讲述了如何通过Matplotlib画柱状图,本文讲述如何通过Matplotlib画饼状图. matplot ...

  9. python可视化工具bokeh_浅谈python可视化包Bokeh

    本文研究的主要是python可视化包Bokeh的相关内容,具体如下. 问题:需要把pandas的数据绘图并通过网页显示,matplotlib需要先保存图像,不合适. 解决:在网上搜了一下,找到一篇介绍 ...

最新文章

  1. 微软职位内部推荐-Senior Software Engineer-Eco
  2. javascript Array方法总结
  3. python基础-字典(8)
  4. eclipse使用working set
  5. 15个IT技术人员必须思考的问题
  6. 【程序员眼中的统计学(12)】相关与回归:我的线条如何?
  7. Cocos2dx游戏源码合集
  8. h5前期js知识点10月16日总结
  9. 美国目前最流行的五种量化交易模型
  10. 手机怎么打开html页面,手机网页打不开怎么办?看了就知道了!
  11. 达摩达兰论估价pdf_应用公司理财PDF下载_(美)阿斯瓦斯・达摩达兰_机械工业出版社_会计_管理_零度图书网...
  12. Struts2,Hibernate,Spring框架学习总结
  13. C盘ProgramData变得巨大--VS2010在C盘下生成的.iTrace文件解决办法
  14. 带你了解什么是产品经理,产品经理究竟做什么的【产品入门】
  15. 开发小程序都需要会哪些技术?
  16. IO模式-BIO,NIO,AIO
  17. 关于弹性布局flex
  18. 读《消失的真实》有感
  19. Linux CFS调度
  20. Photoshop图层混合模式计算公式大全(转)

热门文章

  1. 小米立 Flag:要做年轻人的第一个深度学习框架
  2. 弃 Windows 转投 Linux,微软全面进军 IoT!
  3. 用最通俗易懂的方式打开区块链!
  4. 003.linux开发环境配置及linux极速入门
  5. java的队列和栈_java实现队列和栈
  6. webservice实例java_Java WebService(实战) 简单实例
  7. python中括号配对检测_使用模板匹配在Python上进行对象检测!(附代码)
  8. java 缓存方法_Java实现一个简单的缓存方法
  9. java计算两个数组的交集_回顾面试题:计算两个数组交集
  10. mysql in 按顺序排序_Mysql查询结果顺序按in()中ID的顺序排列的实例分析