Matplotlib 2.2中的新功能¶
受约束的布局管理器¶
警告
受约束的布局是 实验的 . 行为和API可能会发生变化,或者整个功能可能会在没有折旧期的情况下被删除。
一种自动确定子块间距及其组织的新方法 GridSpec
实例已添加。它是为了取代尊者 tight_layout
方法。它是通过一个新的 constrained_layout=True
克瓦格 Figure
或 subplots
.
有新的 rcParams
对于这个包,间距可以随着新的 set_constrained_layout_pads
.
功能包括:
- 具有固定大小填充的子批次及其所有装饰器的自动间距(以英寸为单位),以及作为子批次之间子批次大小的一部分的间距。
- 间距为
suptitle
以及附加到多个轴的颜色条。- 嵌套的
GridSpec
使用布局GridSpecFromSubplotSpec
.有关更多详细信息和功能,请参阅新教程: 受约束的布局参考线
请注意新的API访问此:
新的 plt.figure
和 plt.subplots
kwarg: constrained_layout
¶
figure()
和 subplots()
现在可以用 constrained_layout=True
Kwarg允许受限的布局。
新的 ax.set_position
行为¶
Axes.set_position
现在使指定轴不再响应 constrained_layout
与用户希望手动放置轴的想法一致。
在内部,这意味着 ax.set_position
电话 里面 类库改为私人 ax._set_position
打电话让 constrained_layout
仍然可以使用这些轴。
新的 figure
克沃格 GridSpec
¶
为了方便 constrained_layout
, GridSpec
现在接受 figure
关键字。这是向后兼容的,因为不提供它只会导致 constrained_layout
不在由此组织的子批次上操作 GridSpec
实例。使用的例程 GridSpec
(例如) fig.subplots
)已修改以将数字传递给 GridSpec
.
xlabels和ylabels现在可以自动对齐¶
子情节轴 ylabels
如果刻度线标签的宽度非常不同,则可能会水平不对齐。同样的情况也会发生 xlabels
如果滴答标签在一个子批次上旋转(例如)。新的方法 Figure
班级: Figure.align_xlabels
和 Figure.align_ylabels
现在将水平或垂直对齐这些标签。如果用户只想对齐一些轴,可以传递轴列表。如果没有传递任何列表,算法将查看图上的所有标签。
仅对齐具有相同子批次位置的标签。也就是说,只有当子地块位于子地块布局的同一列中时,才会对齐伊拉贝尔。
这些被称为“自动对齐”和“持久对齐”。
方便包装纸 Figure.align_labels
同时调用两个函数。
(Source code _, png , pdf )
轴图例现在包含在Tight bbox中¶
通过创建的图例 ax.legend
有时会超出轴的极限。类似工具 fig.tight_layout()
和 fig.savefig(bbox_inches='tight')
会剪掉这些传说。为了将它们包括在 tight
计算。
西维迪斯彩色地图¶
添加了一个名为“cividis”的新的深蓝色/黄色颜色贴图。像绿蜘蛛一样,cividis在感知上是一致的,对色盲是友好的。然而,cividis还走得更远:它不仅可以被色盲用户使用,实际上它应该看起来与色盲和非色盲用户完全相同。有关详细信息,请参阅 Nuñez J, Anderton C, and Renslow R: "Optimizing colormaps with consideration for color vision deficiency to enable accurate interpretation of scientific data" .
(Source code _, png , pdf )
新型色盲友好色周期¶
添加了一种定义颜色循环的新样式Tableau-ColorBlind10,以提供对色盲友好绘图的另一种选择。这种新样式的演示可以在 reference 样式表的。要加载此颜色循环而不是默认颜色循环,请执行以下操作:
import matplotlib.pyplot as plt
plt.style.use('tableau-colorblind10')
支持numpy.datetime64¶
Matplotlib支持 datetime.datetime
很长一段时间的约会 matplotlib.dates
. 我们现在支持 numpy.datetime64
还有日期。任何地方 datetime.datetime
可以使用, numpy.datetime64
可以使用。如::
time = np.arange('2005-02-01', '2005-02-02', dtype='datetime64[h]')
plt.plot(time)
用枕头写动画¶
现在可以用枕头作为动画作家了。目前支持的输出格式有GIF(枕头>=3.4)和WEBP(枕头>=5.0)。例如使用:
from __future__ import division
from matplotlib import pyplot as plt
from matplotlib.animation import FuncAnimation, PillowWriter
fig, ax = plt.subplots()
line, = plt.plot([0, 1])
def animate(i):
line.set_ydata([0, i / 20])
return [line]
anim = FuncAnimation(fig, animate, 20, blit=True)
anim.save("movie.gif", writer=PillowWriter(fps=24))
plt.show()
SliderUI小部件可以捕捉到离散值¶
SliderUI小部件可以接受可选参数 瓦尔斯塔 . 这样做会强制滑块只接受离散值,从 缬氨酸 数到 瓦尔马克斯 有台阶的 瓦尔斯塔 .
如果 closedmax==True ,然后滑块将捕捉到 瓦尔马克斯 也。
capstyle
and joinstyle
attributes added to Collection
¶
这个 Collection
类现在具有可自定义的 capstyle
和 joinstyle
属性。例如,这允许用户设置 capstyle
错误的。
pad Kwarg添加到ax.set_标题中¶
方法 Axes.set_title
现在有一个 pad Kwarg,指定从轴顶部到标题绘制位置的距离。单位 pad 是点,默认值是的值(已存在) rcParams["axes.titlepad"]
(default: 6.0
) .
Matplotlib中两种颜色的比较¶
由于Matplotlib中的颜色可以通过多种方式指定,因此 matplotlib.colors.same_color
已添加方法,该方法检查 colors
都一样。
自动缩放极坐标图将捕捉到原点¶
在极坐标图中自动设置限制,如果自动限制在附近,则会将径向限制捕捉为零。这意味着从零开始的绘图不会自动缩放为在径向轴上包含较小的负值。
仍然可以用通常的方法手动设置限制 set_ylim
.
路径式支持¶
关于Python 3.6 +, savefig
, imsave
, imread
和动画作家现在接受 os.PathLike
s作为输入。
Axes.tick_params
可以设置网格线属性¶
Tick
对象包含网格线以及刻度线及其标签。 Axis.set_tick_params
, Axes.tick_params
和 pyplot.tick_params
现在有关键字参数“grid_color”、“grid_alpha”、“grid_lineidth”和“grid_linestyle”,用于覆盖中的默认值。 rcParams
:“网格颜色”等。
Axes.imshow
将RGB值剪辑到有效范围¶
什么时候? Axes.imshow
传递一个带有超出范围值的rgb或rgb a值时,它现在会记录一个警告并将其剪辑到有效范围。旧的行为,包装回到范围,往往隐藏离群值,并使解释RGB图像不可靠。
属性在 matplotlibrc
放置Xaxis和Yaxis标记标签¶
在中引入四个新的布尔属性 matplotlibrc
对于xaxis和yaxis标记标签的默认位置,即, rcParams["xtick.labeltop"]
(default: False
) , rcParams["xtick.labelbottom"]
(default: True
) , rcParams["ytick.labelright"]
(default: False
) 和 rcParams["ytick.labelleft"]
(default: True
) . 这些也可以在RCPARAM中更改。
GTK3的PGI绑定¶
GTK3后端现在可以使用 PGI 而不是 PyGObject. PGI是Gobject的一个相当不完整的绑定,因此不推荐使用它;它的主要好处是它在Travis上的可用性(因此允许对GTK3agg和GTK3cairo后端进行CI测试)。
绑定选择规则如下所示:-if gi
已经导入,请使用它;否则-如果 pgi
已经导入,请使用它;否则-如果 gi
可以导入,使用它;否则-如果 pgi
可以导入,使用它;否则-出错。
因此,要在安装两个绑定时强制使用PGI,请先导入它。
qt、wx和tk画布的cairo渲染¶
新的 Qt4Cairo
, Qt5Cairo
, WXCairo
和 TkCairo
后端允许qt、wx和tk画布使用cairo渲染而不是agg。
在新的工具管理器中添加了对qt的支持¶
现在可以将工具管理器与qt5一起使用了,例如
导入Matplotlib
matplotlib.use('qt5agg')matplotlib.rcparams [“工具栏”] ='toolmanager'导入matplotlib.pyplot as plt
PLT图 [1,2,3] 显示()
目前,将新的工具类视为实验类,API可能会改变,可能还会更改rcparam。
主要例子 刀具管理器 显示更多详细信息,只需调整收割台以使用qt而不是gtk3
用于调试输出的python日志记录库¶
Matplotlib过去(偶尔)使用了一个内部详细的输出报告器。此版本将这些调用转换为使用标准python logging
类库。
支持老年人 rcParams
verbose.level
和 verbose.fileo
被丢弃。
命令行选项 --verbose-helpful
和 --verbose-debug
仍被接受,但已弃用。它们现在等同于设置 logging.INFO
和 logging.DEBUG
.
记录器的根名称是 matplotlib
并且可以从以下程序访问:
import logging
mlog = logging.getLogger('matplotlib')
改进 repr
对于 Transform
的S¶
In [1]: l, = plt.plot([]); l.get_transform()
Out[1]:
CompositeGenericTransform(
TransformWrapper(
BlendedAffine2D(
IdentityTransform(),
IdentityTransform())),
CompositeGenericTransform(
BboxTransformFrom(
TransformedBbox(
Bbox(x0=-0.05500000000000001, y0=-0.05500000000000001, x1=0.05500000000000001, y1=0.05500000000000001),
TransformWrapper(
BlendedAffine2D(
IdentityTransform(),
IdentityTransform())))),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[ 100. 0. 0.]
[ 0. 100. 0.]
[ 0. 0. 1.]])))))))