Matplotlib 2.0中的新功能

注解

Matplotlib2.0支持python 2.7和3.4+

改进了颜色转换API和RGBA支持

这个 colors 获得了一个新的颜色转换API,完全支持alpha通道。主要的公共职能是 is_color_like()matplotlib.colors.to_rgba()matplotlib.colors.to_rgba_array()to_hex() . RGBA四元组以十六进制格式编码为“#rrggbbaa”。

另一个好处是qt选项编辑器现在也允许设置艺术家的alpha通道。

新配置(RCPARAM)

添加了新的RCPARAM

参数 描述
rcParams["date.autoformatter.year"] (default: '%Y') “年”刻度日期的格式字符串
rcParams["date.autoformatter.month"] (default: '%Y-%m') “月”刻度日期的格式字符串
rcParams["date.autoformatter.day"] (default: '%Y-%m-%d') “日”刻度日期的格式字符串
rcParams["date.autoformatter.hour"] (default: '%m-%d %H') “小时”刻度时间的格式字符串
rcParams["date.autoformatter.minute"] (default: '%d %H:%M') “分钟”刻度时间的格式字符串
rcParams["date.autoformatter.second"] (default: '%H:%M:%S') “第二个”刻度时间的格式字符串
rcParams["date.autoformatter.microsecond"] (default: '%M:%S.%f') “微秒”刻度时间的格式字符串
rcParams["scatter.marker"] (default: 'o') 散点图的默认标记
rcParams["svg.hashsalt"] (default: None) 见注释
rcParams["xtick.top"] (default: False), rcParams["xtick.major.top"] (default: True) rcParams["xtick.minor.top"] (default: True), rcParams["xtick.bottom"] (default: True), rcParams["xtick.major.bottom"] (default: True) rcParams["xtick.minor.bottom"] (default: True), rcParams["ytick.left"] (default: True), rcParams["ytick.minor.left"] (default: True), rcParams["ytick.major.left"] (default: True) rcParams["ytick.right"] (default: False), rcParams["ytick.minor.right"] (default: True), rcParams["ytick.major.right"] (default: True) 控制绘制主要刻度线和次要刻度线的位置。全球价值观是 and 用相应的主/次值编辑。对应的主要/次要值。
rcParams["hist.bins"] (default: 10) 要在其中使用的默认箱数 hist . 这可以是一个 int ,浮点数列表,或 'auto' 如果安装了numpy>=1.11。
rcParams["lines.scale_dashes"] (default: True) 线条-虚线图案是否应随线条宽度缩放。
rcParams["axes.formatter.offset_threshold"] (default: 4) 在使用偏移触发的刻度标签中保存的最小位数。

补充 svg.hashsalt RCPARAMS的密钥

如果 svg.hashsaltNone (默认情况下),SVG后端使用 uuid4 生成哈希盐。如果不是 None ,它必须是用作哈希盐的字符串,而不是 uuid4 . 这允许确定性SVG输出。

移除 svg.image_noscale RCPARAM

由于图像处理的广泛变化, svg.image_noscale 已移除RCPARAM。同样的功能可以通过设置 interpolation='none' 在单个图像上或全局使用 image.interpolation RCPARAM。

定性颜色图

ColorBrewer的“定性”颜色映射(“重音”、“深2”、“成对”、“Pastel1”、“Pastel2”、“Set1”、“Set2”、“Set3”)用于离散的分类数据,没有任何价值含义,因此已转换为 ListedColormap 而不是 LinearSegmentedColormap 因此,颜色将不再被插值,它们可以用于合唱团、标记图像特征等。

轴偏移标签现在响应 labelcolor

轴偏移标签现在的颜色与轴刻度标记相同,当 labelcolor 被改变了。

改进的偏移文本选择

默认的偏移文本选择被更改为仅使用所有刻度通用的有效数字(例如1231..1239->1230,而不是1231),除非它们跨越一个10次方的较大倍数,在这种情况下,选择了倍数(例如1999..2001->2000)。

样式参数黑名单

为了防止使用样式的意外后果,样式文件将无法再设置影响与样式无关的事物的参数。这些参数包括:

'interactive', 'backend', 'backend.qt4', 'webagg.port',
'webagg.port_retries', 'webagg.open_in_browser', 'backend_fallback',
'toolbar', 'timezone', 'datapath', 'figure.max_open_warning',
'savefig.directory', 'tk.window_focus', 'docstring.hardcopy'

更改默认字体

对于sans-serif和serif系列,matplotlib在文本中使用的默认字体已分别更改为dejavu sans和dejavu serif。dejavu字体系列基于以前的matplotlib默认值(bitstream vera),但包含了更广泛的字符范围。

默认的MathText字体已从Computer Modern更改为Dejavu系列,以保持与常规文本的一致性。两个新选项 mathtext.fontset 已添加配置参数: dejavusans (默认) dejavuserif . 这两个选项都尽可能使用dejavu glyph,如果在dejavu中找不到glyph,则返回到stix符号。若要返回上一行为,请设置rcparam mathtext.fontsetcm .

更快的文本呈现

现在,在agg后端呈现文本的模糊性更低,绘制速度大约快 20% 。

Qt图形选项编辑器的改进

Qt图形选项编辑器实现了各种可用性改进,其中:

  • 行样式条目现在排序时没有重复项。
  • 现在可以为图像设置颜色映射和规范化限制。
  • 浮动值的行编辑现在只显示所需的数字,以避免精度损失。在使用qt5和十进制分隔符为“,”的区域设置的输入验证方面,还修复了一个重要的错误。
  • 轴选择器现在对轴使用较短、更用户友好的名称,如果没有轴,则不会崩溃。
  • 使用默认标签的行和图像条目(“行”、“图像”)现在按数字排序,即使条目超过10个。

改进的图像支持

在版本2.0之前,Matplotlib通过首先应用颜色映射,然后调整结果大小对图像重新采样。由于对彩色图像执行了重新采样,因此这在输出图像中引入了颜色,而这些颜色实际上并不存在于颜色映射中。现在,首先对图像重新采样(如果输入图像是浮点图像,则完全是浮点图像),然后应用颜色映射。

为了进行这一重要的更改,图像处理代码几乎被完全重写。作为副作用,图像重采样比以前使用更少的内存和更少的数据类型转换。

通过设置私有成员可以“倾斜”图像的实验私有功能 _image_skew_coordinate 已删除。相反,图像将服从所绘制轴的变换。

图像绘图上的非线性比例

imshow 现在,在应用非线性尺度后,在数据空间中的请求点上绘制数据。

左边的图片展示了新的、正确的行为。可以使用 pcolormesh 如右图所示。

(Source code _, pngpdf

../../_images/whats_new_2-0-0-1.png

这可以通过类似于用对数x轴的线性间隔箱绘制柱状图来理解。大小相等的垃圾箱将显示为小垃圾箱的宽度。 x 大的要窄一些 x .

支持NBagg和Webagg后端的hidpi(视网膜)显示

现在,nbagg和webag后端将使用高像素密度显示器的全分辨率。

更改默认动画编解码器

默认动画编解码器已从更改为 mpeg4h264 ,效率更高。可以通过设置 animation.codec RCPARAM。

已弃用对动画中mencoder的支持

使用mencoder编写带MPL的视频文件存在问题;强烈建议切换到ffmpeg。所有对mencoder的支持将在版本2.2中删除。

boxplot zorder关键字参数

这个 Z阶 参数现在存在于 boxplot . 这允许在plotting函数调用中设置箱线图的zorder。:

boxplot(np.arange(10), zorder=10)

填满 +x 标记

新填充剂 plusx 已添加标记。见 markers 模块和 marker reference 示例。

计数计数 对于 plot_surface

从2.0版开始,mplot3d plot_surface 现在接受 计数计数 用于控制打印输入数据采样的参数。这些参数指定从输入数据中获取的最大等间距样本数。这些参数也是函数的新默认采样方法,并被视为样式更改。

老年人 拉斯特里卡斯特里 参数指定了等间距样本的大小,当调用“经典”模式时,它将成为默认值,并且仍然可以使用。没有计划去贬低这些论点。

streamplot zorder关键字参数更改

这个 zorder 参数用于 streamplot 现在默认值为 None 而不是 2 .如果 None 给出作为 zorderstreamplot 有默认 zorder 属于 matplotlib.lines.Line2D.zorder .

扩展到 matplotlib.backend_bases.GraphicsContextBase

为了支持跨后端标准化舱口行为,我们将 matplotlib.backend_bases.GraphicsContextBase.get_hatch_color 添加到的方法 matplotlib.backend_bases.GraphicsContextBase . 这只在我们发货的后端渲染过程中使用,因此不会破坏任何第三方后端。

如果您维护第三方后端,扩展 GraphicsContextBase 此方法现在对您可用,应用于为图案填充着色。