Matplotlib 1.0中的新功能

HTML5/Canvas后端

西蒙·拉特克里夫和路德维希·施瓦德发布了 HTML5/Canvas Matplotlib的后端。后端几乎完成了功能,他们已经做了很多工作,将他们的HTML5渲染图像与我们的核心渲染器agg进行了比较。后端的特点是客户端/服务器在兼容HTML5的浏览器中进行matplotlib图形的交互式导航。

复杂的子地块网格布局

Jae Joon Lee写过 gridspec 一个新的模块,用于进行复杂的子批次布局,具有行和列跨距等特点。见 使用GRIDSPEC和其他功能自定义图形布局 以获取教程概述。

../../_images/sphx_glr_demo_gridspec01_0011.png

演示GRIDSPEC01

简单的肾盂分流术

Fernando Perez厌倦了在使用matplotlib API时创建一个数字和多个子块所需的所有样板代码,并编写了一个 subplots() 帮助程序函数。基本用法允许您使用numpy索引(从0开始)创建图形和子批次数组。例如。::

fig, axarr = plt.subplots(2, 2)
axarr[0,0].plot([1,2,3])   # upper, left

基本子批次演示 对于几个代码示例。

轮廓固定和三重定位

伊恩·托马斯修复了一个长期存在的bug,多年来它一直困扰着我们最有才华的开发人员。 contourf() 现在处理内部遮罩区域,线条和填充轮廓的边界重合。

此外,他还贡献了一个新模块 tri 和助手函数 triplot() 用于创建和绘制非结构化三角形网格。

../../_images/sphx_glr_triplot_demo_0011.png

三重情节演示

显示支持的多个调用

一个长期存在的请求是支持多个呼叫 show() . 这很困难,因为很难在操作系统、用户界面工具包和版本之间获得一致的行为。EricFilling在合理化后端显示方面做了很多工作,其所需的行为是使Show提高所有新创建的图形并阻止执行,直到它们关闭。重复显示的调用应提高自上次调用以来新创建的数字。Eric已经对用户界面工具包、他可以访问的版本和平台进行了大量测试,但无法全部测试,因此请将问题报告给 mailing listbug tracker .

MPlot3D图形可以嵌入任意轴中。

现在,您可以将mplot3d图形放置到任意轴位置,支持在同一个图形中混合二维和三维图形,和/或在单个图形中混合多个三维图形,使用“projection”关键字参数添加轴或添加子块。谢谢本鲁特。

../../_images/sphx_glr_whats_new_1_subplot3d_0011.png

新功能1 Subplot3d

tick_params

EricFiring编写了Tick_参数,这是一种更改Tick和Tick标签外观的方便方法。参见Pyplot函数 tick_params() 和相关轴方法 tick_params() .

许多性能和功能增强

  • 大图像的快速放大,以及放大到单个像素的能力
  • 本地安装文档会更好地工作
  • 改进的“小部件”--支持鼠标抓取
  • 更精确地将线条捕捉到像素边界
  • 在整个API中对颜色(尤其是alpha通道)的处理更加一致

改进了很多的软件木工

由于改进,Matplotlib行李箱的形状可能与以往一样好。 software carpentry . 我们现在有一个 buildbot 它有一套 nose 对每个SVN提交进行回归测试,自动生成一组图像,并将它们与一组已知的商品进行比较,向开发人员发送失败的电子邮件,并逐像素进行图像比较。发布和发布错误修复发生在分支中,允许在主干中进行活动的新功能开发,同时保持发布分支的稳定性。感谢安德鲁·斯特劳、迈克尔·德罗特布姆和其他Matplotlib开发者的大力支持。

修复马拉松

Eric Fireing在Jae Joon Lee、Michael Droetboom、Christoph Gohlke和Michiel de Hoon的帮助下,在SourceForge bug跟踪器(现已关闭)上关闭了100多个bug。