Matplotlib 1.3中的新功能¶
Table of Contents
注解
Matplotlib1.3支持python 2.6、2.7、3.2和3.3
1.3.1新¶
1.3.1是一个错误修复版本,主要处理改进的依赖项设置和处理,以及更正和增强文档。
自1.3.0以来,在1.3.1中进行了以下更改。
增强功能¶
- 添加了用于创建多页PDF的上下文管理器(请参见
matplotlib.backends.backend_pdf.PdfPages
) - Webagg后端现在应该比异类互联网连接具有更低的延迟。
错误修复¶
- 柱状图现在包含终点线。
- 修复了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()
.
更新了axes3d.contour方法¶
Damon McDougall更新了 tricontour()
和 tricontourf()
方法允许非结构化用户指定的三角测量上的三维轮廓图。
三角网格插值¶
geofroy billotey和ian thomas添加了在三角形网格内执行插值的类: (LinearTriInterpolator
和 CubicTriInterpolator
)以及一个实用程序类来查找点所在的三角形 (TrapezoidMapTriFinder
)还添加了一个帮助类来执行网格细化和平滑轮廓绘制。 (UniformTriRefiner
)最后,添加了一个实现三角网格改进的一些基本工具的类。 (TriAnalyzer
)
矩形颜色条扩展¶
安德鲁·道森添加了一个新的关键字参数 扩展码 到 colorbar()
使色带扩展成为矩形而不是三角形。
不带参数调用子批次()。¶
呼叫 subplot()
没有任何论据,现在的行为与 subplot(111)
或 subplot(1, 1, 1)
--它为整个图形创建一个轴。这已经是两个人的行为了 axes()
和 subplots()
,现在与共享此一致性 subplot()
.
绘图¶
面和边颜色的独立alpha值¶
WES活动修改了 Patch
对象的绘制方式(对于支持透明度的后端)可以通过以rgba格式指定其颜色,为面和边设置不同的alpha值。请注意,如果为patch对象设置alpha属性(例如,使用 set_alpha()
或 alpha
关键字参数),该值将覆盖在面颜色和边颜色中设置的alpha组件。
更容易创建颜色映射和具有颜色的级别的规格化器¶
菲尔·埃尔森补充道 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 艺术家在一个人物-这以前不是案件,并导致了几个角落案件的功能没有如预期。
文本¶
锚定文本支持¶
SVG和pgf后端现在可以将文本对齐信息保存为其输出格式。这允许在保存的图形中编辑文本元素,例如使用Inkscape,同时保留它们的预期位置。对于SVG,请注意您必须禁用默认的文本到路径转换 (mpl.rc('svg', fonttype='none')
)
更好的垂直文本对齐方式和多行文本¶
现在,文本的垂直对齐方式在后端是一致的。您可能会看到文本位置的细微差异,特别是旋转文本。
如果使用自定义后端,请注意 draw_text
渲染器方法现在传递给基线的位置,而不是文本边界框底部的位置。
多行文本现在将为非常高或非常低的文本(如上标和下标)留出足够的空间。
改进了手动轮廓图标签定位¶
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.xmargin
和 axes.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浏览器中显示数字。它既可以与动画一起工作,也可以完全交互。
未来版本的matplotlib将把这个后端与ipython笔记本集成起来,形成一个完全基于web浏览器的打印前端。
记住保存目录¶
Martin Spacek使“保存图形”对话框记住最后保存到的目录。默认配置为 rcParams["savefig.directory"]
(default: '~'
) RCPARAM matplotlibrc
.
文件和示例¶
示例现在使用子批次()。¶
为了简洁明了,大部分 examples 现在使用更新的 subplots()
在一次调用中创建一个图形和一个(或多个)轴对象。老办法是打电话给 figure()
,后跟一个(或多个) subplot()
电话。
基础设施¶
新建安装脚本¶
Matplotlib1.3包含一个完全重写的设置脚本。我们现在减少了对tarballs和安装程序本身的依赖。尤其是, pytz, dateutil, pyparsing 和 six 不再包含在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。