默认后端不再必须设置为构建过程的一部分。相反,在运行时,内置后端按顺序尝试,直到其中一个导入。
无头linux服务器(由未定义的DISPLAY env标识)不会选择GUI后端。
添加了两个名为“twilight”和“twilight_shifted”的新色图。这些色彩图以相同的颜色开始和结束,并且具有两个对称的半部,具有相同的亮度,但是颜色发散。由于它们环绕,因此它们是循环数据的良好选择,例如相位角,罗盘方向或一天中的时间。像viridis和 cividis一样,黄昏在感性上是均匀的,色盲友好。
要按固定的数量级缩放轴,请将scilimits参数设置 Axes.ticklabel_format
为相同(非零)的下限和上限。比如说将y轴缩放一百万(1e6),请使用
ax.ticklabel_format(style='sci', scilimits=(6, 6), axis='y')
行为没有改变。使用此设置,Matplotlib将根据轴值调整数量级,而不是保持固定。以前,设置 等同于设置。scilimits=(0, 0)
scilimits=(m,m)
scilimits=(0, 0)
新的mpl_toolkits类 AnchoredDirectionArrows
绘制一对正交箭头以指示2D绘图上的方向。最小的工作示例接受坐标系的变换对象(通常是ax.transAxes)和箭头标签。有几个可选参数可用于更改布局。例如,可以旋转箭头对并且可以改变颜色。默认情况下,标签和箭头具有相同的颜色,但是类也可以传递用于自定义箭头和文本布局的参数,这些参数将传递给matplotlib.text.TextPath
和matplotlib.patches.FancyArrowPatch
。可以调整箭头尾部和头部的位置,长度和宽度,方向箭头和标签可以有一个框架。填充和分离参数可以调整。
colorbar.Colobar.minorticks_on()
添加了一种新方法来正确显示颜色条上的次要刻度。当扩展kwarg
(在创建颜色条时使用)设置为“both”,“max”或“min” 时,此方法不允许次要刻度延伸到超出vmin和vmax的区域。colorbar.Colobar.minorticks_off()
还添加了一种补充方法来移除颜色条上的次要刻度。
放置在彩条上的刻度数之前适用于大型彩条,但如果shrink
彩色条变小(即通过kwarg)则看起来很糟糕。这已经改变,因此刻度的数量现在响应于颜色条的大小。
以前,使用GUI的保存对话框将图形保存到文件时,如果磁盘上已存在默认文件名(基于图窗口标题),Matplotlib会附加后缀(例如Figure_1-1.png
),阻止对话框提示覆盖文件。此行为已被删除。现在,如果磁盘上存在文件名,则会提示用户是否覆盖它。这消除了猜测,并允许有意覆盖,尤其是在使用手动设置图形名称时figure.Figure.canvas.set_window_title()
。
一个标题Figure.legend
和Axes.legend
现在有它的字体大小通过设置title_fontsize
kwarg。还有一个新的rcParams["legend.title_fontsize"]
。两者都默认为None
,这意味着图例标题将具有与轴默认fontsize相同的字体大小(不是由fontsize
kwarg 设置的图例字体大小 rcParams["legend.fontsize"]
)。
Matplotlib rcParams
设置对象现在支持axes.prop_cycle
使用markevery
Line2D对象属性使用循环器配置属性。提供此功能的一个示例 py
pgf后端现在也支持多页PDF文件。
from matplotlib.backends.backend_pgf import PdfPages
import matplotlib.pyplot as plt
with PdfPages('multipage.pdf') as pdf:
# page 1
plt.plot([2, 1, 3])
pdf.savefig()
# page 2
plt.cla()
plt.plot([3, 1, 2])
pdf.savefig()
我们承认大多数人不喜欢蛋形馅饼。因此,绘制饼图的轴将被设置为默认具有相等的宽高比。这可确保饼图在轴大小或单位上独立呈圆形。要恢复到先前的行为,请使用ax.set_aspect("auto")
或 将轴的纵横比设置为自动plt.axis("auto")
。
SubplotBase
SubplotBase.get_gridspec
添加了新方法,以便用户可以轻松获得制作轴的gridspec:
import matplotlib.pyplot as plt
fig, axs = plt.subplots(3, 2)
gs = axs[0, -1].get_gridspec()
# remove the last column
for ax in axs[:,-1].flatten():
ax.remove()
# make a subplot in last column that spans rows.
ax = fig.add_subplot(gs[:, -1])
plt.show()
以前,如果x轴重叠(通常当x轴放在轴的顶部时),则必须手动移动轴标题。现在,如果标题位于顶部,标题将自动移动到xaxis及其装饰器(包括xlabel)之上。
如果需要,仍然可以手动放置标题。有轻微的污垢; 算法检查标题的y位置是否为1.0(默认值),如果是,则移动。如果用户将标题置于默认位置(即),则标题仍将移动到x轴上方。如果用户想要避免这种情况,他们可以指定一个接近的数字(即),并且不会通过该算法移动标题。ax.title.set_position(0.5, 1.0)
ax.title.set_position(0.5, 1.01)
有新的便捷方法gridspec.GridSpec
和 gridspec.GridSpecFromSubplotSpec
。我们现在可以打电话Figure.add_gridspec
给后者,而不是前者SubplotSpec.subgridspec
。
import matplotlib.pyplot as plt
fig = plt.figure()
gs0 = fig.add_gridspec(3, 1)
ax1 = fig.add_subplot(gs0[0])
ax2 = fig.add_subplot(gs0[1])
gssub = gs0[2].subgridspec(1, 3)
for i in range(3):
fig.add_subplot(gssub[0, i])
该类中add_artist
添加了 一种方法Figure
,可以将艺术家直接添加到图形中。例如
circ = plt.Circle((.7, .5), .05)
fig.add_artist(circ)
如果添加的艺术家之前没有变换集,则将其设置为数字transform(fig.transFigure
)。这种新方法可用于将艺术家添加到没有轴的图形中,或者可以轻松地将静态元素定位在图形坐标中。
:math:
提供的第一个角色matplotlib.sphinxext.mathmpl
已重命名为:mathmpl:
避免与:math:
Sphinx 1.8默认提供的角色冲突。(:mathmpl:
使用Matplotlib将数学表达式渲染为嵌入在html中的图像,而Sphinx使用MathJax。)
当使用Sphinx <1.8时,两个名称(:math:
和:mathmpl:
)仍然可用于反向兼容。
想了解更多,请移步官网,查看。
原文:https://matplotlib.org/3.0.0/users/whats_new.html#