Matplotlib 1.4中的新功能

ThomasA.Caswell是1.4版本的发布经理。

注解

Matplotlib1.4支持python 2.6、2.7、3.3和3.4

新彩色地图

在热图中,绿色到红色的光谱通常用来表示活动强度,但对于红/绿色盲来说,这可能是个问题。一个新的,对色盲友好的颜色映射现在可以在 matplotlib.cm.Wistia . 这幅彩色地图保持了红/绿的象征意义,同时通过亮度变化实现了氘的易读性。见 here 更多信息。

nbagg后端

PhilElson添加了一个新的后端,名为“nbagg”,它可以在实时ipython笔记本会话中实现交互式图形。后端利用为webagg后端开发的基础设施,该基础设施本身在浏览器中提供独立的服务器支持的交互式图形,但是nbagg不需要专用的matplotlib服务器,因为所有通信都通过ipython通信机器处理。

与其他后端一样,可以在ipython笔记本内启用nbagg,其方式为:

import matplotlib
matplotlib.use('nbagg')

一旦创建图形并随后显示,它们将放置在笔记本内的交互式小部件中,允许以与任何其他Matplotlib后端相同的方式进行平移和缩放。由于数字需要连接到IPython笔记本服务器以实现交互,因此一旦保存笔记本,每个数字都将呈现为静态图像,从而允许非交互查看服务上的数字,例如 nbviewer .

新绘图功能

幂律规范化

Ben Gamari添加了一种幂律归一化方法, PowerNorm . 此类将值的范围映射到间隔 [0,1] 具有幂律缩放,指数由构造函数提供 伽马 争论。幂律标准化对于强调柱状图中的小群体是有用的。

完全可定制的箱线图

保罗·霍布森彻底检修了 boxplot() 方法,这样就可以完全自定义各个艺术家的风格和位置。在引擎盖下, boxplot() 依赖于新功能 (boxplot_stats() ,它接受当前与 boxplot() ,并返回一个字典列表,其中包含箱线图中每个元素的位置。第二种方法, bxp 调用以根据统计数据绘制箱线图。

这个 boxplot() 函数可以像以前一样在一个步骤中从数据生成箱线图。但是现在用户可以灵活地独立生成统计信息,或者修改 boxplot_stats() 在绘制之前 bxp .

最后,现在可以打开或关闭每个艺术家(例如,框、离群值、帽、槽口),并且可以通过单个Kwarg传入他们的样式。参见示例: 盒形图中的艺术家自定义箱线图抽屉功能

加了一个布尔夸格, manage_xticks ,如果为false,则禁用对X轴上的刻度和限制的管理 bxp() .

支持二维绘图中的日期时间轴

安德鲁·道森增加了对日期时间轴的支持 contour()contourf()pcolormesh()pcolor() .

支持其他频谱类型

Todd Jennings增加了对新型频谱图的支持: magnitude_spectrum()phase_spectrum()angle_spectrum() 以及MLAB中的相应功能。

他还将这些光谱类型添加到 specgram() 以及在那里添加对线性缩放的支持(除了现有的DB缩放)。对其他光谱类型的支持也被添加到 specgram() .

他还提高了所有这些函数和绘图类型的性能。

支持在MLAB中删除和窗口化二维数组

Todd Jennings在 detrend_mean()detrend_none()detrend() ,以及添加 apply_window() 它支持二维数组窗口化。

支持MLAB的步伐

ToddJennings向MLAB添加了一些函数,以便更容易地使用nummy steps创建内存高效的二维数组。这包括 stride_repeat() ,重复数组以创建二维数组,以及 stride_windows() ,使用移动窗口从一维数组创建二维数组。

新样式格式化字符串的格式化程序

补充 StrMethodFormatter 哪个工作和 FormatStrFormatter ,但接受新样式的格式字符串而不是printf样式的格式字符串

流图中一致的网格大小

streamplot() 两者都使用30x30的基本网格 density=1density=(1, 1) . 以前,网格大小为30x30用于 density=1 ,但网格大小25x25用于 density=(1, 1) .

获取所有刻度线标签的列表(主要和次要)

将“which”添加到 Axes.get_xticklabelsAxes.get_yticklabelsAxis.get_ticklabels . '可以是“major”、“minor”或“both”,选择要返回的刻度,例如 set_ticks_position() . 如果“哪个”是 None 然后是旧的行为(由乳房控制) 少数的

在ImageGrid中分离水平/垂直轴填充支持

kwarg“轴心垫”到 mpl_toolkits.axes_grid1.axes_grid.ImageGrid 如果需要单独的水平/垂直填充,现在可以是元组。如果每个子批次旁边都有一个带标签的图例,并且需要为图例的标签留出一些空间,那么这将非常有用。

支持倾斜转换

这个 Affine2D 获得了其他方法 skewskew_deg 创建扭曲的转换。此外,Matplotlib内部被清理干净以支持在 Axes . 这种转换对于某些绘图类型很重要,特别是在气象学中使用的倾斜T。

../../_images/sphx_glr_skewt_0011.png

斜楔

支持在饼图中指定楔体和文本的属性。

添加了kwargs'wedgeprops'和'textprops'到 pie 接受饼图中楔形和文本对象的属性。例如,可以指定wedgeprops=lineidth':3来指定饼图中楔体边框的宽度。有关用户可以指定的更多属性,请查看楔形和文本对象的文档。

固定误差条上下限方向

拉里·布拉德利修好了 errorbar() 方法使上下限( 洛利姆斯上行链路西洛里斯许普林 )现在指向正确的方向。

更一致的轴添加对象API

添加了轴方法 add_image 使图像处理与艺术家、收藏品、容器、线条、补丁和表格相当。

小提琴绘图

帕克、格雷戈里·凯尔西、亚当·奥提兹、凯文·陈、杰弗里·李、德奥卡亚·唐纳德·塞奥和泰苏·特里·林为小提琴绘图添加了一个基本的实现。小提琴图可以用来表示样本数据的分布。它们类似于方框图,但使用核密度估计函数呈现所用数据样本的平滑近似。新增功能包括:

violin -从一组统计数据中呈现出小提琴的情节。 violin_stats() -生成一组适用于绘制小提琴绘图的统计数据。 violinplot() -从一组示例数据创建小提琴绘图。这种方法利用 violin_stats() 处理输入数据,以及 violin_stats() 进行实际渲染。用户也可以自由修改或替换 violin_stats() 为了定制他们喜欢的小提琴情节。

这项功能是在多伦多大学斯卡伯勒分校(University of Toronto,Scarborough)的一门软件工程课程中实现的,该课程于2014年冬季由Anya Tafliovich主持。

更多 markevery 仅显示标记子集的选项

罗汉·沃克把 markevery 属性 Line2D . 现在,您可以指定标记的子集,用int、slice对象、numpy花式索引或float显示。使用浮动显示标记,显示的坐标距离大致相等。

修正了极坐标图中给出错误θ值的鼠标坐标

添加代码到 transform_non_affine() 为了确保计算出的theta值在0到2*pi的范围内,因为问题是,将方向和旋转应用到theta计算后,该值可能变为负值。

mplot3d工具包的简单抖动图

一队学生 工程大型软件系统 该课程由多伦多大学的Anya Tafliovich教授教授讲授,为MPlot3D工具包在3D空间中实现了一个简单的震颤图版本,作为他们的学期项目之一。此功能记录在 quiver() . 团队成员包括:Ryan Steve D'Souza、Victor B、XBTSW、Yang Wang、David、Caradec Biesar和Vlad Vassilovski。

../../_images/sphx_glr_quiver3d_0012.png

奎维3D

极坐标图R记号位置

增加了在极坐标图上通过 set_rlabel_position .

数据处理

N-D数组支持日期转换

安德鲁·道森增加了对N-D阵列处理的支持 matplotlib.dates.num2date()matplotlib.dates.date2num()matplotlib.dates.datestr2num() . 支持也被添加到单元转换接口中。 matplotlib.dates.DateConvertermatplotlib.units.Registry .

配置(RCPARAM)

savefig.transparent 补充

控制默认情况下是否以透明背景保存图形。以前 savefig 始终默认为非透明背景。

axes.titleweight

添加了rcparam以控制标题的权重

axes.formatter.useoffset 补充

控制的默认值 使用偏移 在里面 ScalarFormatter . 如果 True 数据范围比数据平均值小得多,然后确定偏移量,这样记号标签就有意义了。如果 False 然后将在所有条件下格式化完整的数字。

nbagg.transparent 补充

控制nbagg图形是否具有透明背景。 nbagg.transparentTrue 默认情况下。

XDG依从性

Matplotlib现在在与xdg兼容的位置中查找配置文件(包括rcparams和style)。

style 增加包装

现在您可以使用新的 style 包裹::

>>> from matplotlib import style
>>> style.use('dark_background')

后续绘图将使用更新的颜色、尺寸等。要列出所有可用样式,请使用:

>>> print style.available

您可以添加自己的自定义 <style name>.mplstyle 文件到 ~/.matplotlib/stylelib 或呼叫 use 带有指向文件的URL matplotlibrc 设置。

注意这是一个实验特性 当用户测试出这个新特性时,界面可能会改变。

后端

QT5后端

Martin Fitzpatrick和Tom Badran实现了一个qt5后端。qt4和qt5之间的名称空间位置差异通过填充qt4来处理,使其看起来像qt5,因此qt5实现是主要实现。通过包装qt5实现来维护qt4的向后兼容性。

qt5agg后端目前无法使用ipython的 %matplotlib magic。

1.4.0版本有一个已知的bug,其中工具栏被破坏。可以通过以下方式修复:

cd path/to/installed/matplotlib
wget https://github.com/matplotlib/matplotlib/pull/3322.diff
# unix2dos 3322.diff (if on windows to fix line endings)
patch -p2 < 3322.diff

QT4后端

鲁道夫·弗莱尔改变了子绘图工具的外观。现在所有滑块都是垂直排列的,添加了用于紧密布局和重置的按钮。此外,子绘图工具现在作为模式对话框实现。它以前是一个qmainwindow,如果关闭绘图窗口,SPT将保持打开状态。

在“图形选项”对话框中,现在可以选择(重新)生成简单的自动图例。任何显式设置的图例项都将丢失,但对曲线标签、线条样式等的更改现在将在图例中更新。

在Windows下,qt4后端的交互性能得到了显著提高。

从qt到matplotlib理解值的关键信号映射得到了极大的改善(对于qt4和qt5)。

开罗后端

开罗后端现在可以使用 cairocffi bindingspycairo bindings .

GTK3AGG后端

gtk3agg后端现在可以在python 3.x上工作,如果 cairocffi bindings 安装完毕。

后端PDF

添加了用于保存到多页PDF的上下文管理器。

文本

SVG后端支持的文本URL

SVG后端现在将呈现 Text 对象的URL作为输出SVG中的链接。这允许您使用 Text 班级。

锚定的sizebar字体

增加了 fontproperties 克瓦格 AnchoredSizeBar 控制字体属性。

Sphinx伸展

这个 :context: 中的指令 plot_directive Sphinx扩展现在可以接受可选的 reset 设置,这将导致重置上下文。这允许文档中存在多个不同的上下文。要启用此选项,请使用 :context: reset 而不是 :context: 随时重置上下文。

图例和路径效果文档

这个 图例指南路径效果指南 两者都已更新,以更好地反映这些强大功能的全部潜力。

小部件

跨距选择器

增加期权 span_staysSpanSelector 这使选择器矩形在释放鼠标后保持在轴上。

GAE集成

Matplotlib现在将在Google应用程序引擎上运行。