Matplotlib 1.3中的新功能

注解

Matplotlib1.3支持python 2.6、2.7、3.2和3.3

1.3.1新

1.3.1是一个错误修复版本,主要处理改进的依赖项设置和处理,以及更正和增强文档。

自1.3.0以来,在1.3.1中进行了以下更改。

增强功能

错误修复

  • 柱状图现在包含终点线。
  • 修复了moleweide投影。
  • 改进了使用非ASCII元数据处理Microsoft和Macintosh样式字体的方法。
  • 绘图间填充图案填充现在可以在PDF后端正常工作。
  • 紧边界框支持现在在PGF后端工作。
  • 透明数字现在在qt4agg后端正确显示。
  • 从一个子地块到另一个子地块的绘制现在可以工作了。
  • 对屏蔽阵列的单元处理进行了改进。

设置和依赖项

  • 现在可以使用任何版本的pyparsing 1.5.6或更高版本,而不显示数百个警告。
  • 现在可以在MS Windows上使用64位版本的ghostscript。
  • 当从源代码安装到没有numpy的环境中时,numpy将首先被下载和构建,然后用于构建matplotlib。
  • 外部安装的后端现在总是使用模块的完全限定路径导入。
  • 适用于较新版本的wxpython。
  • 现在可以使用从源代码全局安装在系统上的Pycxx进行构建。
  • 更好地检测GTK3依赖项。

测试

  • 测试现在应该可以在非英语环境中工作。
  • PEP8一致性测试现在报告问题的位置。

新绘图功能

xkcd -样式草图绘制

为了给你的情节一种权威感,他们可能会失踪,迈克尔·德罗特布姆 PR #1329 增加了一个 xkcd-style 草图绘制模式。要使用它,只需调用 matplotlib.pyplot.xkcd 在创建绘图之前。为了实现真正的精细控制,还可以使用 matplotlib.artist.Artist.set_sketch_params() .

../../_images/sphx_glr_xkcd_0012.png

XKCD

更新了axes3d.contour方法

Damon McDougall更新了 tricontour()tricontourf() 方法允许非结构化用户指定的三角测量上的三维轮廓图。

../../_images/sphx_glr_tricontour3d_0011.png

三连通

新建事件图打印类型

托德·詹宁斯增加了 eventplot() 函数创建多行或多列相同的线段

../../_images/sphx_glr_eventplot_demo_0011.png

事件图演示

作为此功能的一部分,有一个新的 EventCollection 类,用于打印和操作相同线段的行或列。

三角网格插值

geofroy billotey和ian thomas添加了在三角形网格内执行插值的类: (LinearTriInterpolatorCubicTriInterpolator )以及一个实用程序类来查找点所在的三角形 (TrapezoidMapTriFinder )还添加了一个帮助类来执行网格细化和平滑轮廓绘制。 (UniformTriRefiner )最后,添加了一个实现三角网格改进的一些基本工具的类。 (TriAnalyzer

../../_images/sphx_glr_tricontour_smooth_user_0011.png

三角肌光滑使用者

堆叠绘图的比较基准

直到stensitzki在 stackplot() . 它们可以是对称的或加权的。

../../_images/sphx_glr_stackplot_demo_0011.png

堆栈式DEMO

矩形颜色条扩展

安德鲁·道森添加了一个新的关键字参数 扩展码colorbar() 使色带扩展成为矩形而不是三角形。

更坚固的箱线图

保罗·霍布森为 boxplot() 一种防止胡须被拉入奇怪分布的数据集的盒内的方法。

不带参数调用子批次()。

呼叫 subplot() 没有任何论据,现在的行为与 subplot(111)subplot(1, 1, 1) --它为整个图形创建一个轴。这已经是两个人的行为了 axes()subplots() ,现在与共享此一致性 subplot() .

绘图

面和边颜色的独立alpha值

WES活动修改了 Patch 对象的绘制方式(对于支持透明度的后端)可以通过以rgba格式指定其颜色,为面和边设置不同的alpha值。请注意,如果为patch对象设置alpha属性(例如,使用 set_alpha()alpha 关键字参数),该值将覆盖在面颜色和边颜色中设置的alpha组件。

对线条的路径效果

多亏了JaeJoonLee,路径效果现在也可以在绘图线上工作。

../../_images/sphx_glr_patheffect_demo_0011.png

模拟演示

更容易创建颜色映射和具有颜色的级别的规格化器

菲尔·埃尔森补充道 matplotlib.colors.from_levels_and_colors() 函数的作用是轻松创建颜色映射和规格化器,用于表示打印类型(如 matplotlib.pyplot.pcolormesh() ,接口与 matplotlib.pyplot.contourf .

完全控制背景色

wes campaigne和phil elson修复了agg后端,这样当 fig.patch.get_alpha() 不是1。

改进 bbox_inches="tight" 功能

经过 bbox_inches="tight" 通过 pyplot.savefig 现在考虑 all 艺术家在一个人物-这以前不是案件,并导致了几个角落案件的功能没有如预期。

初始化旋转的矩形

达蒙·麦克杜格尔把 Rectangle 构造函数接受 Kwarg,指定矩形的旋转角度。

文本

锚定文本支持

SVG和pgf后端现在可以将文本对齐信息保存为其输出格式。这允许在保存的图形中编辑文本元素,例如使用Inkscape,同时保留它们的预期位置。对于SVG,请注意您必须禁用默认的文本到路径转换 (mpl.rc('svg', fonttype='none')

更好的垂直文本对齐方式和多行文本

现在,文本的垂直对齐方式在后端是一致的。您可能会看到文本位置的细微差异,特别是旋转文本。

如果使用自定义后端,请注意 draw_text 渲染器方法现在传递给基线的位置,而不是文本边界框底部的位置。

多行文本现在将为非常高或非常低的文本(如上标和下标)留出足够的空间。

左右轴标题

Andrew Dawson添加了使用新的关键字参数添加轴标题与轴顶部的左侧和右侧齐平的功能。 loctitle() .

改进了手动轮廓图标签定位

Brian Mattern修改了手动轮廓图标签定位代码,以便沿直线段插入,并找到轮廓上与请求位置的实际最近点。以前,使用的是最近的路径顶点,在直线轮廓的情况下,它有时与请求的位置相距相当远。更精确的标签定位现在是可能的。

配置(RCPARAM)

快速查找RCPARAM

Phil Elson通过将有效的正则表达式传递给 matplotlib.RcParams.find_all() . matplotlib.RcParams 现在也有一个漂亮的repr和str表示,这样搜索结果就可以打印出来了:

>>> import matplotlib
>>> print(matplotlib.rcParams.find_all('\.size'))
RcParams({'font.size': 12,
          'xtick.major.size': 4,
          'xtick.minor.size': 2,
          'ytick.major.size': 4,
          'ytick.minor.size': 2})

axes.xmarginaxes.ymargin 添加到rcparams

rcParams["axes.xmargin"] (default: 0.05) 和 rcParams["axes.ymargin"] (default: 0.05) 已添加以配置使用的默认边距。以前它们被硬编码为默认值0,两个rcParam值的默认值都是0。

对字体rcparams的更改

这个 font.* RCPARAM现在只影响在设置了RCPARAM之后创建的文本对象,并且不会对已经存在的文本对象进行追溯。这使它们的行为与大多数其他RCPARAM一致。

补充 rcParams["savefig.jpeg_quality"] (default: 95)

RCPARAM值 rcParams["savefig.jpeg_quality"] (default: 95) 已添加,以便用户可以配置将图形写入jpeg时使用的默认质量。默认质量为95;以前,默认质量为75。这种变化最大限度地减少了jpeg图像中固有的伪影,特别是对于像绘图一样颜色发生急剧变化的图像。

后端

WebAG后端

MichaelDroettBoom、PhilElson和其他人开发了一种新的后端系统Webagg,用于在Web浏览器中显示数字。它既可以与动画一起工作,也可以完全交互。

../../_images/webagg_screenshot.png

未来版本的matplotlib将把这个后端与ipython笔记本集成起来,形成一个完全基于web浏览器的打印前端。

记住保存目录

Martin Spacek使“保存图形”对话框记住最后保存到的目录。默认配置为 rcParams["savefig.directory"] (default: '~') RCPARAM matplotlibrc .

文件和示例

numpydoc文档字符串

NelleVaroquaux已经启动了一个正在进行的项目,将Matplotlib的docStrings转换为numpydoc格式。见 MEP10 更多信息。

示例重组

余永强已经开始将这些例子重新组织成更有意义的类别。新的绘图示例页面是这项正在进行的工作的成果。见 MEP12 更多信息。

示例现在使用子批次()。

为了简洁明了,大部分 examples 现在使用更新的 subplots() 在一次调用中创建一个图形和一个(或多个)轴对象。老办法是打电话给 figure() ,后跟一个(或多个) subplot() 电话。

基础设施

清扫

已删除1.2或更早版本中不推荐使用的一些功能,或长期未处于工作状态的一些功能。亮点包括删除qt版本3后端,以及fltkagg和emf后端。见 1.3.x中的变化 完整的清单。

新建安装脚本

Matplotlib1.3包含一个完全重写的设置脚本。我们现在减少了对tarballs和安装程序本身的依赖。尤其是, pytz, dateutil, pyparsingsix 不再包含在Matplotlib中。您可以先手动安装它们,或者让 pip 将它们与matplotlib一起作为依赖项安装。现在可以不在安装中包含某些子组件,如单元测试数据。见 setup.cfg.template 更多信息。

xdg基本目录支持

在Linux上,Matplotlib现在使用 XDG base directory specification 找到 matplotlibrc 配置文件。 matplotlibrc 现在应该放在里面 ~/.config/matplotlib 而不是 ~/.matplotlib . 如果在旧位置找到您的配置,它仍将被使用,但会显示警告。

使用Pyplot捕获打开过多的数字

数字创建通过 pyplot.figure 保留到显式关闭为止。因此,Matplotlib的新用户在不关闭的情况下在一个循环中创建一系列大的数字时,通常会耗尽内存。

Matplotlib现在将显示 RuntimeWarning 一次打开的数字太多。默认情况下,这将显示20个或更多数字,但可以使用 figure.max_open_warning RCPARAM。