Matplotlib 1.4中的新功能¶
ThomasA.Caswell是1.4版本的发布经理。
Table of Contents
注解
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=1
和 density=(1, 1)
. 以前,网格大小为30x30用于 density=1
,但网格大小25x25用于 density=(1, 1)
.
获取所有刻度线标签的列表(主要和次要)¶
将“which”添加到 Axes.get_xticklabels
, Axes.get_yticklabels
和 Axis.get_ticklabels
. '可以是“major”、“minor”或“both”,选择要返回的刻度,例如 set_ticks_position()
. 如果“哪个”是 None
然后是旧的行为(由乳房控制) 少数的 )
在ImageGrid中分离水平/垂直轴填充支持¶
kwarg“轴心垫”到 mpl_toolkits.axes_grid1.axes_grid.ImageGrid
如果需要单独的水平/垂直填充,现在可以是元组。如果每个子批次旁边都有一个带标签的图例,并且需要为图例的标签留出一些空间,那么这将非常有用。
支持倾斜转换¶
这个 Affine2D
获得了其他方法 skew
和 skew_deg
创建扭曲的转换。此外,Matplotlib内部被清理干净以支持在 Axes
. 这种转换对于某些绘图类型很重要,特别是在气象学中使用的倾斜T。
支持在饼图中指定楔体和文本的属性。¶
添加了kwargs'wedgeprops'和'textprops'到 pie
接受饼图中楔形和文本对象的属性。例如,可以指定wedgeprops=lineidth':3来指定饼图中楔体边框的宽度。有关用户可以指定的更多属性,请查看楔形和文本对象的文档。
固定误差条上下限方向¶
拉里·布拉德利修好了 errorbar()
方法使上下限( 洛利姆斯 , 上行链路 , 西洛里斯 , 许普林 )现在指向正确的方向。
小提琴绘图¶
帕克、格雷戈里·凯尔西、亚当·奥提兹、凯文·陈、杰弗里·李、德奥卡亚·唐纳德·塞奥和泰苏·特里·林为小提琴绘图添加了一个基本的实现。小提琴图可以用来表示样本数据的分布。它们类似于方框图,但使用核密度估计函数呈现所用数据样本的平滑近似。新增功能包括:
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。
极坐标图R记号位置¶
增加了在极坐标图上通过 set_rlabel_position
.
数据处理¶
N-D数组支持日期转换¶
安德鲁·道森增加了对N-D阵列处理的支持 matplotlib.dates.num2date()
, matplotlib.dates.date2num()
和 matplotlib.dates.datestr2num()
. 支持也被添加到单元转换接口中。 matplotlib.dates.DateConverter
和 matplotlib.units.Registry
.
配置(RCPARAM)¶
axes.titleweight
¶
添加了rcparam以控制标题的权重
axes.formatter.useoffset
补充¶
控制的默认值 使用偏移 在里面 ScalarFormatter
. 如果 True
数据范围比数据平均值小得多,然后确定偏移量,这样记号标签就有意义了。如果 False
然后将在所有条件下格式化完整的数字。
nbagg.transparent
补充¶
控制nbagg图形是否具有透明背景。 nbagg.transparent
是 True
默认情况下。
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 bindings 比 pycairo bindings .
GTK3AGG后端¶
gtk3agg后端现在可以在python 3.x上工作,如果 cairocffi bindings 安装完毕。
后端PDF¶
添加了用于保存到多页PDF的上下文管理器。
文本¶
锚定的sizebar字体¶
增加了 fontproperties
克瓦格 AnchoredSizeBar
控制字体属性。
Sphinx伸展¶
这个 :context:
中的指令 plot_directive
Sphinx扩展现在可以接受可选的 reset
设置,这将导致重置上下文。这允许文档中存在多个不同的上下文。要启用此选项,请使用 :context: reset
而不是 :context:
随时重置上下文。
小部件¶
跨距选择器¶
增加期权 span_stays
到 SpanSelector
这使选择器矩形在释放鼠标后保持在轴上。