matplotlib.ticker#

刻度定位与格式化#

此模块包含用于配置刻度定位和格式化的类。提供了通用的刻度定位器和格式化器,以及特定领域的自定义定位器和格式化器。

虽然定位器对主刻度和次刻度一无所知,但它们被轴类用来支持主刻度和次刻度的定位和格式化。

刻度定位#

Locator 类是所有刻度定位器的基类。定位器处理基于数据限制的视图限制的自动缩放,以及刻度位置的选择。一个有用的半自动刻度定位器是 MultipleLocator。它以一个基数初始化,例如,10,并且它选择轴限制和刻度,这些限制和刻度是该基数的倍数。

这里定义的定位器子类有:

AutoLocator

MaxNLocator 使用简单的默认设置。这是大多数绘图的默认刻度定位器。

MaxNLocator

找到最多指定数量的区间,并在合适的位置打上刻度。

LinearLocator

空间从最小到最大均匀分布。

LogLocator

空间刻度从最小到最大按对数变化。

MultipleLocator

刻度和范围是基数的倍数;可以是整数或浮点数。

FixedLocator

刻度位置是固定的。

IndexLocator

索引图的定位器(例如,x = range(len(y)) 的地方)。

NullLocator

没有勾号。

SymmetricalLogLocator

用于 symlog 规范的定位器;在阈值之外的部分工作方式类似于 LogLocator,如果在限制范围内则添加 0。

AsinhLocator

用于 asinh 范数的定位器,试图近似均匀地分布刻度。

LogitLocator

logit 缩放定位器。

AutoMinorLocator

当轴为线性且主刻度均匀分布时,用于次刻度的定位器。将主刻度间隔细分为指定数量的次刻度间隔,默认根据主间隔分为4或5个次间隔。

有一些专门用于日期位置的定位器 - 请参阅 dates 模块。

你可以通过继承 Locator 来定义自己的定位器。你必须重写 __call__ 方法,该方法返回一个位置序列,并且你可能希望重写 autoscale 方法以根据数据限制设置视图限制。

如果你想覆盖默认的定位器,使用上述之一或自定义定位器,并将其传递给x轴或y轴实例。相关方法是:

ax.xaxis.set_major_locator(xmajor_locator)
ax.xaxis.set_minor_locator(xminor_locator)
ax.yaxis.set_major_locator(ymajor_locator)
ax.yaxis.set_minor_locator(yminor_locator)

默认的次要刻度定位器是 NullLocator,即默认情况下没有次要刻度。

备注

Locator 实例不应与多个 AxisAxes 一起使用。因此,应改为:

locator = MultipleLocator(5)
ax.xaxis.set_major_locator(locator)
ax2.xaxis.set_major_locator(locator)

请改为执行以下操作:

ax.xaxis.set_major_locator(MultipleLocator(5))
ax2.xaxis.set_major_locator(MultipleLocator(5))

刻度格式化#

刻度格式化由从 Formatter 派生的类控制。格式化器对单个刻度值进行操作,并返回一个字符串给轴。

NullFormatter

刻度上没有标签。

FixedFormatter

手动设置标签的字符串。

FuncFormatter

用户定义的函数设置标签。

StrMethodFormatter

使用字符串 format 方法。

FormatStrFormatter

使用旧式的 sprintf 格式字符串。

ScalarFormatter

标量的默认格式化器:自动选择格式字符串。

LogFormatter

对数轴的格式化器。

LogFormatterExponent

使用 exponent = log_base(value) 格式化对数轴的值。

LogFormatterMathtext

使用 exponent = log_base(value) 的数学文本格式化对数轴的值。

LogFormatterSciNotation

使用科学计数法格式化对数轴的值。

LogitFormatter

概率格式化器。

EngFormatter

以工程记数法格式化标签。

PercentFormatter

将标签格式化为百分比。

你可以通过简单地重写 __call__ 方法从 Formatter 基类派生你自己的格式化器。格式化器类可以访问轴视图和数据限制。

要控制主刻度和次刻度标签的格式,请使用以下方法之一:

ax.xaxis.set_major_formatter(xmajor_formatter)
ax.xaxis.set_minor_formatter(xminor_formatter)
ax.yaxis.set_major_formatter(ymajor_formatter)
ax.yaxis.set_minor_formatter(yminor_formatter)

除了 Formatter 实例,set_major_formatterset_minor_formatter 也接受 str 或函数。str 输入将被内部替换为使用输入 str 自动生成的 StrMethodFormatter。对于函数输入,将生成并使用带有输入函数的 FuncFormatter

有关设置主刻度和次刻度的示例,请参见 主刻度和次刻度。有关使用日期定位器和格式化器的更多信息和示例,请参见 matplotlib.dates 模块。

class matplotlib.ticker.AsinhLocator(linear_width, numticks=11, symthresh=0.2, base=10, subs=None)[源代码][源代码]#

基类:Locator

在反双曲正弦尺度上均匀放置刻度。

通常与 AsinhScale 类一起使用。

备注

此API是暂定的,可能会根据早期用户反馈在未来进行修订。

参数:
线性宽度浮动

定义准线性区域范围的尺度参数。

numticksint, 默认值: 11

将沿整个轴线适合的主要刻度的大致数量

symthreshfloat, 默认值: 0.2

低于此分数阈值的数据,如果其覆盖范围大致关于零对称,则其刻度将完全对称。

基础int, 默认值: 10

用于在对数刻度上舍入刻度位置的数字基数。如果这个值小于一,那么舍入到最接近的十的幂的整数倍。

substuple, 默认: None

数字基数的倍数,通常用于次要刻度,例如当基数=10时,使用 (2, 5)。

set_params(numticks=None, symthresh=None, base=None, subs=None)[源代码][源代码]#

在此定位器中设置参数。

tick_values(vmin, vmax)[源代码][源代码]#

返回给定 vminvmax 的定位刻度值。

备注

要获取自动定义了 vmin 和 vmax 值的关联 的刻度位置,只需调用 Locator 实例:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
class matplotlib.ticker.AutoLocator[源代码][源代码]#

基类:MaxNLocator

均匀放置刻度,刻度步长和最大刻度数会自动选择。

这是 MaxNLocator 的一个子类,带有参数 nbins = 'auto'steps = [1, 2, 2.5, 5, 10]

要了解非公开参数的值,请查看 MaxNLocator 的默认值。

class matplotlib.ticker.AutoMinorLocator(n=None)[源代码][源代码]#

基类:Locator

放置均匀间隔的次要刻度,刻度步长和最大刻度数将自动选择。

轴的比例必须是线性的,并且主刻度间距均匀。

n 是主刻度之间间隔的细分数量;例如,n=2 将在主刻度之间放置一个次刻度。

如果 n 被省略或为 None,将使用 rcParams 中存储的值。如果 n 设置为 'auto',它将被设置为 4 或 5。如果主刻度之间的距离等于 1、2.5、5 或 10,它可以被完美地分成 5 个等距的子区间,长度为 0.05 的倍数。否则,它将被分成 4 个子区间。

tick_values(vmin, vmax)[源代码][源代码]#

返回给定 vminvmax 的定位刻度值。

备注

要获取自动定义了 vmin 和 vmax 值的关联 的刻度位置,只需调用 Locator 实例:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
class matplotlib.ticker.EngFormatter(unit='', places=None, sep=' ', *, usetex=None, useMathText=None)[源代码][源代码]#

基类:Formatter

使用工程前缀格式化轴值,以表示1000的幂,再加上指定的单位,例如,10 MHz 而不是 1e7。

参数:
单元str, 默认值: ""

要使用的单位符号,适用于与1000的幂的单字母表示一起使用。例如,'Hz' 或 'm'。

地点int, 默认值: None

显示数字的精度,以小数点后的位数指定(小数点前会有1到3位数字)。如果为None,格式化将回退到浮点格式'%%g',该格式最多显示6位*有效*数字,即*places*的等效值在0到5之间(含0和5)。

sepstr, 默认值: " "

用于值和前缀/单位之间的分隔符。例如,如果 sep 是 " "(默认),则得到 '3.14 mV',如果 sep 是 "",则得到 '3.14mV'。除了默认行为外,还有一些其他有用的选项可能包括:

  • sep="" 直接将前缀/单位附加到值上;

  • sep="\N{THIN SPACE}" (U+2009);

  • sep="\N{NARROW NO-BREAK SPACE}" (U+202F);

  • sep="\N{NO-BREAK SPACE}" (U+00A0).

usetex : bool, 默认值: rcParams["text.usetex"] (default: False)bool, 默认:

启用/禁用使用 TeX 的数学模式来渲染格式化器中的数字。

useMathText : bool, 默认值: rcParams["axes.formatter.use_mathtext"] (default: False)bool, 默认:

启用/禁用格式化器中用于渲染数字的mathtext。

ENG_PREFIXES = {-30: 'q', -27: 'r', -24: 'y', -21: 'z', -18: 'a', -15: 'f', -12: 'p', -9: 'n', -6: 'µ', -3: 'm', 0: '', 3: 'k', 6: 'M', 9: 'G', 12: 'T', 15: 'P', 18: 'E', 21: 'Z', 24: 'Y', 27: 'R', 30: 'Q'}#
format_eng(num)[源代码][源代码]#

以工程记数法格式化一个数字,附加一个字母表示原数字的1000次幂。一些例子:

>>> format_eng(0)        # for self.places = 0
'0'
>>> format_eng(1000000)  # for self.places = 1
'1.0 M'
>>> format_eng(-1e-6)  # for self.places = 2
'-1.00 µ'
get_useMathText()[源代码][源代码]#
get_usetex()[源代码][源代码]#
set_useMathText(val)[源代码][源代码]#
set_usetex(val)[源代码][源代码]#
property useMathText#

!! 由 numpydoc 处理 !!

property usetex#

!! 由 numpydoc 处理 !!

class matplotlib.ticker.FixedFormatter(seq)[源代码][源代码]#

基类:Formatter

仅根据位置返回刻度标签的固定字符串,不基于值。

备注

FixedFormatter 应该仅与 FixedLocator 一起使用。否则,标签可能会出现在意想不到的位置。

设置用于标签的字符串序列 seq

get_offset()[源代码][源代码]#
set_offset_string(ofs)[源代码][源代码]#
class matplotlib.ticker.FixedLocator(locs, nbins=None)[源代码][源代码]#

基类:Locator

在固定值集合处放置刻度。

如果 nbins 为 None,刻度将放置在所有值上。否则,可能位置的 locs 数组将被二次采样以保持刻度数 \(\leq nbins + 1\)。二次采样将包括最小绝对值;例如,如果零包含在可能的数组中,那么它将被包含在选定的刻度中。

set_params(nbins=None)[源代码][源代码]#

在此定位器中设置参数。

tick_values(vmin, vmax)[源代码][源代码]#

返回刻度的位置。

备注

由于值是固定的,vmin 和 vmax 在此方法中不被使用。

class matplotlib.ticker.FormatStrFormatter(fmt)[源代码][源代码]#

基类:Formatter

使用旧式('%' 运算符)格式字符串来格式化刻度。

格式字符串应包含一个单一的变量格式(%)。它将被应用于刻度的值(而非位置)。

负数值(例如,-1)将使用短划线,而不是Unicode减号;使用mathtext可以通过将格式说明符用$包裹来获取Unicode减号(例如,"$%g$")。

class matplotlib.ticker.Formatter[源代码][源代码]#

基类:TickHelper

根据刻度值和位置创建一个字符串。

static fix_minus(s)[源代码][源代码]#

某些类可能希望用适当的 Unicode 符号(U+2212)替换减号中的连字符,以实现排版正确性。这是一个辅助方法,当通过 rcParams["axes.unicode_minus"] (default: True) 启用时,执行此类替换。

format_data(value)[源代码][源代码]#

返回值的完整字符串表示形式,位置未指定。

format_data_short(value)[源代码][源代码]#

返回刻度值的简短字符串版本。

默认为与位置无关的长值。

format_ticks(values)[源代码][源代码]#

一次性返回所有刻度的标签。

get_offset()[源代码][源代码]#
locs = []#
set_locs(locs)[源代码][源代码]#

设置刻度的位置。

在计算刻度标签之前调用此方法,因为某些格式化程序需要知道所有刻度位置才能执行此操作。

class matplotlib.ticker.FuncFormatter(func)[源代码][源代码]#

基类:Formatter

使用用户定义的函数进行格式化。

该函数应接受两个输入(一个刻度值 x 和一个位置 pos),并返回包含相应刻度标签的字符串。

get_offset()[源代码][源代码]#
set_offset_string(ofs)[源代码][源代码]#
class matplotlib.ticker.IndexLocator(base, offset)[源代码][源代码]#

基类:Locator

在每个第 n 个绘制的点上放置刻度。

IndexLocator 假设索引绘图;即,刻度放置在从 0 到 len(data) 范围内的整数值上,包括 0 和 len(data)。

offset 开始,在每个 base 数据点放置刻度。

set_params(base=None, offset=None)[源代码][源代码]#

在此定位器内设置参数

tick_values(vmin, vmax)[源代码][源代码]#

返回给定 vminvmax 的定位刻度值。

备注

要获取自动定义了 vmin 和 vmax 值的关联 的刻度位置,只需调用 Locator 实例:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
class matplotlib.ticker.LinearLocator(numticks=None, presets=None)[源代码][源代码]#

基类:Locator

在均匀间隔的值处放置刻度。

第一次调用此函数时,它会尝试设置刻度数以实现良好的刻度分区。之后,刻度数将被固定,以便交互式导航效果良好。

参数:
numticksint 或 None, 默认 None

刻度数量。如果为 None,则 numticks = 11。

预设字典或None,默认:None

字典映射 (vmin, vmax) 到位置数组。如果当前 (vmin, vmax) 有条目,则覆盖 numticks

property numticks#

!! 由 numpydoc 处理 !!

set_params(numticks=None, presets=None)[源代码][源代码]#

在此定位器中设置参数。

tick_values(vmin, vmax)[源代码][源代码]#

返回给定 vminvmax 的定位刻度值。

备注

要获取自动定义了 vmin 和 vmax 值的关联 的刻度位置,只需调用 Locator 实例:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
view_limits(vmin, vmax)[源代码][源代码]#

尝试智能地选择视图限制。

class matplotlib.ticker.Locator[源代码][源代码]#

基类:TickHelper

确定刻度位置。

请注意,相同的定位器不应在多个 Axis 之间使用,因为定位器存储了对轴数据和视图限制的引用。

MAXTICKS = 1000#
nonsingular(v0, v1)[源代码][源代码]#

根据需要调整范围以避免奇点。

此方法在自动缩放期间被调用,如果 Axes 包含任何数据,则 (v0, v1) 设置为 Axes 上的数据限制,否则设置为 (-inf, +inf)

  • 如果 v0 == v1 (可能在某些浮点误差范围内),此方法将返回一个围绕此值的扩展区间。

  • 如果 (v0, v1) == (-inf, +inf),此方法返回适当的默认视图限制。

  • 否则,(v0, v1) 将不作修改地返回。

raise_if_exceeds(locs)[源代码][源代码]#

如果 locs 的长度超过 Locator.MAXTICKS,则在 WARNING 级别记录日志。

这旨在在从 __call__ 返回 locs 之前立即调用,以通知用户,以防他们的 Locator 返回大量刻度,导致 Matplotlib 耗尽内存。

这个方法的“奇怪”名称可以追溯到它曾经会抛出异常而不是发出日志的时候。

set_params(**kwargs)[源代码][源代码]#

什么也不做,并引发一个警告。任何不支持 set_params() 函数的定位器类都会调用此方法。

tick_values(vmin, vmax)[源代码][源代码]#

返回给定 vminvmax 的定位刻度值。

备注

要获取自动定义了 vmin 和 vmax 值的关联 的刻度位置,只需调用 Locator 实例:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
view_limits(vmin, vmax)[源代码][源代码]#

从 vmin 到 vmax 的范围选择一个比例。

子类应重写此方法以改变定位器行为。

class matplotlib.ticker.LogFormatter(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[源代码][源代码]#

基类:Formatter

用于在对数或对称对数刻度上格式化刻度的基类。

可以直接实例化,也可以子类化。

参数:
基础浮点数,默认值:10.

所有计算中使用的对数的底数。

labelOnlyBasebool, 默认值: False

如果为 True,则仅在基数的整数次幂处标记刻度。这通常对主要刻度为 True,对次要刻度为 False。

minor_thresholds(子集, 全部), 默认: (1, 0.4)

如果 labelOnlyBase 为 False,这两个数字控制不在整数次幂的基上的刻度的标签;通常这些是次要刻度。控制参数是轴数据范围的对数。在典型的基为 10 的情况下,它是轴跨越的十进制数,因此我们可以称之为 'numdec'。如果 numdec <= all,所有次要刻度都将被标记。如果 all < numdec <= subset,那么只有一部分次要刻度会被标记,以避免拥挤。如果 numdec > subset,则不会标记任何次要刻度。

linthreshNone 或 float, 默认: None

如果正在使用对称对数刻度,则必须在此处提供其 linthresh 参数。

注释

必须调用 set_locs 方法以启用由 minor_thresholds 参数控制的子集逻辑。

在某些情况下,例如颜色条,主要刻度和次要刻度之间没有区别;刻度位置可以手动设置,或者由一个在基数的整数次幂和中间位置放置刻度的定位器设置。对于这种情况,可以通过使用 minor_thresholds=(np.inf, np.inf) 来禁用 minor_thresholds 逻辑,以便所有刻度都会被标记。

当 'labelOnlyBase' 为 False 时,要禁用次刻度的标签,请使用 minor_thresholds=(0, 0)。这是“经典”样式的默认设置。

示例

要在视图限制跨越最多2个数量级时标记一小部分次要刻度,并在放大到0.5个数量级或更少时标记所有刻度,请使用 minor_thresholds=(2, 0.5)

要在视图限制范围达到1.5个数量级时标记所有次要刻度,请使用 minor_thresholds=(1.5, 1.5)

format_data(value)[源代码][源代码]#

返回值的完整字符串表示形式,位置未指定。

format_data_short(value)[源代码][源代码]#

返回刻度值的简短字符串版本。

默认为与位置无关的长值。

set_base(base)[源代码][源代码]#

更改 基础 标签。

警告

应始终与用于 LogLocator 的基数匹配

set_label_minor(labelOnlyBase)[源代码][源代码]#

切换次要刻度标签的开关。

参数:
labelOnlyBase布尔值

如果为 True,则仅在基数的整数次幂处标记刻度。

set_locs(locs=None)[源代码][源代码]#

使用轴视图限制来控制哪些刻度被标记。

当前算法中,locs 参数被忽略。

class matplotlib.ticker.LogFormatterExponent(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[源代码][源代码]#

基类:LogFormatter

使用 exponent = log_base(value) 格式化对数轴的值。

class matplotlib.ticker.LogFormatterMathtext(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[源代码][源代码]#

基类:LogFormatter

使用 exponent = log_base(value) 格式化对数轴的值。

class matplotlib.ticker.LogFormatterSciNotation(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[源代码][源代码]#

基类:LogFormatterMathtext

在对数轴上格式化遵循科学计数法的值。

class matplotlib.ticker.LogLocator(base=10.0, subs=(1.0,), *, numticks=None)[源代码][源代码]#

基类:Locator

放置对数间隔的刻度。

在值 subs[j] * base**i 处放置刻度。

参数:
基础float, 默认值: 10.0

所使用的对数的底数,因此主刻度位于 base**n 处,其中 n 是一个整数。

subsNone 或 {'auto', 'all'} 或浮点数序列,默认值:(1.0,)

指定在基数的整数次幂处放置刻度。默认值 (1.0, ) 仅在基数的整数次幂处放置刻度。允许的字符串值为 'auto''all'。这两个值都使用基于轴视图限制的算法来确定是否以及如何在基数的整数次幂之间放置刻度: - 'auto':仅在整数次幂之间放置刻度。 - 'all':在整数次幂之间和整数次幂处都放置刻度。 - None:等同于 'auto'

numticksNone 或 int,默认:None

给定轴上允许的最大刻度数。默认值 None 将尝试智能选择,只要此定位器已使用 get_tick_space 分配给轴,否则将回退到 9。

nonsingular(vmin, vmax)[源代码][源代码]#

根据需要调整范围以避免奇点。

此方法在自动缩放期间被调用,如果 Axes 包含任何数据,则 (v0, v1) 设置为 Axes 上的数据限制,否则设置为 (-inf, +inf)

  • 如果 v0 == v1 (可能在某些浮点误差范围内),此方法将返回一个围绕此值的扩展区间。

  • 如果 (v0, v1) == (-inf, +inf),此方法返回适当的默认视图限制。

  • 否则,(v0, v1) 将不作修改地返回。

set_params(base=None, subs=None, *, numticks=None)[源代码][源代码]#

在此定位器中设置参数。

tick_values(vmin, vmax)[源代码][源代码]#

返回给定 vminvmax 的定位刻度值。

备注

要获取自动定义了 vmin 和 vmax 值的关联 的刻度位置,只需调用 Locator 实例:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
view_limits(vmin, vmax)[源代码][源代码]#

尝试智能地选择视图限制。

class matplotlib.ticker.LogitFormatter(*, use_overline=False, one_half='\\frac{1}{2}', minor=False, minor_threshold=25, minor_number=6)[源代码][源代码]#

基类:Formatter

概率格式化工具(使用数学文本)。

参数:
use_overlinebool, 默认值: False

如果 x > 1/2,且 x = 1 - v,指示是否应将 x 显示为 $overline{v}$。默认情况下,显示 $1 - v$。

one_half : str, 默认值: r"\frac{1}{2}"str, 默认值: r"\frac{1}{2}"

用于表示 1/2 的字符串。

次要bool, 默认值: False

指示格式化器是否正在格式化次要刻度。基本上,次要刻度没有标记,除非只提供了少量刻度,与相邻刻度间距最大的刻度会被标记。请参阅其他参数以更改默认行为。

minor_thresholdint, 默认值: 25

用于标记某些次要刻度的最大位置数。如果 minor 为 False,则此参数无效。

minor_numberint, 默认值: 6

当刻度数量低于阈值时,标记的刻度数量。

format_data_short(value)[源代码][源代码]#

返回刻度值的简短字符串版本。

默认为与位置无关的长值。

set_locs(locs)[源代码][源代码]#

设置刻度的位置。

在计算刻度标签之前调用此方法,因为某些格式化程序需要知道所有刻度位置才能执行此操作。

set_minor_number(minor_number)[源代码][源代码]#

设置在标记一些次要刻度时,次要刻度的数量。

参数:
minor_number整数

当刻度数量低于阈值时,标记的刻度数量。

set_minor_threshold(minor_threshold)[源代码][源代码]#

设置标记次要刻度的阈值。

参数:
minor_threshold整数

用于标记某些次要刻度的最大位置数量。如果 minor 为 False,则此参数无效。

set_one_half(one_half)[源代码][源代码]#

设置一半的显示方式。

one_halfstr

用于表示 1/2 的字符串。

use_overline(use_overline)[源代码][源代码]#

使用overline切换显示模式以标记p>1/2。

参数:
use_overline布尔值

如果 x > 1/2,且 x = 1 - v,指示是否应将 x 显示为 $overline{v}$。默认情况下,显示 $1 - v$。

class matplotlib.ticker.LogitLocator(minor=False, *, nbins='auto')[源代码][源代码]#

基类:MaxNLocator

在logit刻度上均匀放置刻度。

参数:
nbinsint 或 'auto', 可选

刻度数量。仅在 minor 为 False 时使用。

次要bool, 默认值: False

指示此定位器是否用于次要刻度。

property minor#

!! 由 numpydoc 处理 !!

nonsingular(vmin, vmax)[源代码][源代码]#

根据需要调整范围以避免奇点。

此方法在自动缩放期间被调用,如果 Axes 包含任何数据,则 (v0, v1) 设置为 Axes 上的数据限制,否则设置为 (-inf, +inf)

  • 如果 v0 == v1 (可能在某些浮点误差范围内),此方法将返回一个围绕此值的扩展区间。

  • 如果 (v0, v1) == (-inf, +inf),此方法返回适当的默认视图限制。

  • 否则,(v0, v1) 将不作修改地返回。

set_params(minor=None, **kwargs)[源代码][源代码]#

在此定位器中设置参数。

tick_values(vmin, vmax)[源代码][源代码]#

返回给定 vminvmax 的定位刻度值。

备注

要获取自动定义了 vmin 和 vmax 值的关联 的刻度位置,只需调用 Locator 实例:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
class matplotlib.ticker.MaxNLocator(nbins=None, **kwargs)[源代码][源代码]#

基类:Locator

均匀放置刻度,并限制刻度的总数。

在视图限制内找到不超过 \(nbins + 1\) 个刻度的好位置。超出限制的位置被添加以支持自动缩放。

参数:
nbinsint 或 'auto', 默认值: 10

最大区间数;比最大刻度数少一。如果字符串为'auto',则区间数将根据轴的长度自动确定。

步骤类数组,可选

可接受的刻度倍数序列,从1开始到10结束。例如,如果 steps=[1, 2, 4, 5, 10],那么 20, 40, 600.4, 0.6, 0.8 将是可能的刻度集,因为它们是2的倍数。30, 60, 90 将不会生成,因为3不在这个示例的步骤列表中。

整数bool, 默认值: False

如果为 True,刻度将只取整数值,前提是在视图限制内至少找到 min_n_ticks 个整数。

对称bool, 默认值: False

如果为真,自动缩放将导致一个关于零对称的范围。

prune{'lower', 'upper', 'both', None}, 默认: None

移除 'lower' 刻度、'upper' 刻度,或 'both' 两侧的刻度 *如果它们恰好位于轴的边缘*(这通常发生在 rcParams["axes.autolimit_mode"] (default: 'data') 为 'round_numbers' 时)。移除这些刻度对于堆叠或组合的图表非常有用,其中 Axes 的上刻度与上方 Axes 的下刻度重叠。

min_n_ticksint, 默认值: 2

如有必要,放宽 nbinsinteger 约束以获得此最小刻度数。

default_params = {'integer': False, 'min_n_ticks': 2, 'nbins': 10, 'prune': None, 'steps': None, 'symmetric': False}#
set_params(**kwargs)[源代码][源代码]#

设置此定位器的参数。

参数:
nbinsint 或 'auto', 可选

参见 MaxNLocator

步骤类数组,可选

参见 MaxNLocator

整数bool, 可选

参见 MaxNLocator

对称bool, 可选

参见 MaxNLocator

prune{'lower', 'upper', 'both', None}, 可选

参见 MaxNLocator

min_n_ticksint, 可选

参见 MaxNLocator

tick_values(vmin, vmax)[源代码][源代码]#

返回给定 vminvmax 的定位刻度值。

备注

要获取自动定义了 vmin 和 vmax 值的关联 的刻度位置,只需调用 Locator 实例:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
view_limits(dmin, dmax)[源代码][源代码]#

从 vmin 到 vmax 的范围选择一个比例。

子类应重写此方法以改变定位器行为。

class matplotlib.ticker.MultipleLocator(base=1.0, offset=0.0)[源代码][源代码]#

基类:Locator

在每个基数的整数倍加上偏移量的位置放置刻度。

参数:
基础float > 0, 默认值: 1.0

刻度之间的间隔。

偏移浮点数,默认值:0.0

每个 base 倍数的增值。

Added in version 3.8.

set_params(base=None, offset=None)[源代码][源代码]#

在此定位器中设置参数。

参数:
基础float > 0, 可选

刻度之间的间隔。

偏移float, 可选

每个 base 倍数的增值。

Added in version 3.8.

tick_values(vmin, vmax)[源代码][源代码]#

返回给定 vminvmax 的定位刻度值。

备注

要获取自动定义了 vmin 和 vmax 值的关联 的刻度位置,只需调用 Locator 实例:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
view_limits(dmin, dmax)[源代码][源代码]#

将视图限制设置为包含数据的最近刻度值。

class matplotlib.ticker.NullFormatter[源代码][源代码]#

基类:Formatter

总是返回空字符串。

class matplotlib.ticker.NullLocator[源代码][源代码]#

基类:Locator

无勾号

tick_values(vmin, vmax)[源代码][源代码]#

返回刻度的位置。

备注

因为值为空,vmin 和 vmax 在此方法中不被使用。

class matplotlib.ticker.PercentFormatter(xmax=100, decimals=None, symbol='%', is_latex=False)[源代码][源代码]#

基类:Formatter

将数字格式化为百分比。

参数:
xmax浮动

确定数字如何转换为百分比。xmax 是与 100% 相对应的数据值。百分比计算为 x / xmax * 100。因此,如果数据已经按百分比缩放,xmax 将为 100。另一种常见情况是 xmax 为 1.0。

小数无或整数

小数点后显示的小数位数。如果为 None (默认值),则小数位数将自动计算。

符号str 或 None

将被附加到标签的字符串。它可以是 None 或空,以表示不应使用任何符号。每当启用 latex 模式时,symbol 中的 LaTeX 特殊字符会被转义,除非 is_latexTrue

is_latex布尔值

如果 Falsesymbol 中的保留 LaTeX 字符将被转义。

convert_to_pct(x)[源代码][源代码]#
format_pct(x, display_range)[源代码][源代码]#

将数字格式化为百分比数字,并根据需要添加正确的小数位数和百分号。

如果 self.decimalsNone,小数点后的位数将根据轴的 display_range 设置如下:

显示范围

小数

示例

>50

0

x = 34.5 => 35%

>5

toctree 是一个 reStructuredText 指令 ,这是一个非常多功能的标记。指令可以有参数、选项和内容。

x = 34.5 => 34.5%

>0.5

2

x = 34.5 => 34.50%

...

...

...

这种方法对于极小的轴范围或极大的范围效果不佳。它假设图表上的值是显示在合理比例上的百分比。

property symbol#

配置的百分号作为字符串。

如果通过 rcParams["text.usetex"] (default: False) 启用了 LaTeX,字符串中的特殊字符 {'#', '$', '%', '&', '~', '_', '^', '\', '{', '}'} 会自动转义。

class matplotlib.ticker.ScalarFormatter(useOffset=None, useMathText=None, useLocale=None)[源代码][源代码]#

基类:Formatter

将刻度值格式化为数字。

参数:
useOffset : bool 或 float, 默认值: rcParams["axes.formatter.useoffset"] (default: True)布尔值或浮点数,默认值:

是否使用偏移表示法。参见 set_useOffset

useMathText : bool, 默认值: rcParams["axes.formatter.use_mathtext"] (default: False)bool, 默认:

是否使用花哨的数学格式。参见 set_useMathText

useLocale : bool, 默认值: rcParams["axes.formatter.use_locale"] (default: False).bool, 默认:

是否使用区域设置来表示小数点和正号。参见 set_useLocale

注释

除了上述参数外,科学计数法与浮点表示法的格式可以通过 set_scientificset_powerlimits 进行配置。

偏移表示法和科学计数法

偏移表示法和科学表示法乍一看非常相似。两者都将一些信息从格式化的刻度值中分离出来,并显示在轴的末端。

  • 科学记数法将数量级,即一个乘法缩放因子,分开,例如 1e6

  • 偏移表示法分隔一个加法常数,例如 +1e6。偏移表示法标签总是以 +- 符号为前缀,因此可以与数量级标签区分开来。

以下x轴范围为 1_000_0001_000_010 的图表展示了不同的格式化效果。注意x轴右侧的标签。

(Source code, 2x.png, png)

format_data(value)[源代码][源代码]#

返回值的完整字符串表示形式,位置未指定。

format_data_short(value)[源代码][源代码]#

返回刻度值的简短字符串版本。

默认为与位置无关的长值。

get_offset()[源代码][源代码]#

返回科学计数法,加上偏移量。

get_useLocale()[源代码][源代码]#

返回是否使用区域设置进行格式化。

get_useMathText()[源代码][源代码]#

返回是否使用花哨的数学格式化。

get_useOffset()[源代码][源代码]#

返回偏移表示法的自动模式是否处于活动状态。

如果调用 set_useOffset(True),则返回 True;如果设置了显式偏移,例如 set_useOffset(1000),则返回 False。

set_locs(locs)[源代码][源代码]#

设置刻度的位置。

在计算刻度标签之前调用此方法,因为某些格式化程序需要知道所有刻度位置才能执行此操作。

set_powerlimits(lims)[源代码][源代码]#

设置科学计数法的大小阈值。

参数:
lims(整数, 整数)

一个元组 (min_exp, max_exp),包含决定切换阈值的10的幂次。对于一个可表示为 \(a \times 10^\mathrm{exp}\) 的数,其中 \(1 <= |a| < 10\),如果 exp <= min_expexp >= max_exp,将使用科学计数法。

默认限制由 rcParams["axes.formatter.limits"] (default: [-5, 6]) 控制。

特别是当 exp 等于阈值时,数字会以科学计数法表示。

通常,min_exp 会是负数,而 max_exp 会是正数。

例如,formatter.set_powerlimits((-3, 4)) 将提供以下格式:\(1 imes 10^{-3}, 9.9 imes 10^{-3}, 0.01,\) \(9999, 1 imes 10^4\)

set_scientific(b)[源代码][源代码]#

打开或关闭科学计数法。

set_useLocale(val)[源代码][源代码]#

设置是否使用区域设置来确定小数点和正号的符号。

参数:
val布尔值或无

None 重置为 rcParams["axes.formatter.use_locale"] (default: False)。

set_useMathText(val)[源代码][源代码]#

设置是否使用花哨的数学格式化。

如果启用,科学计数法将格式化为 \(1.2 imes 10^3\)

参数:
val布尔值或无

None 重置为 rcParams["axes.formatter.use_mathtext"] (default: False)。

set_useOffset(val)[源代码][源代码]#

设置是否使用偏移表示法。

在格式化一组数值时,如果这些数值相对于其范围较大,格式化器可以分离出一个加法常数。这可以缩短格式化的数值,使得它们在绘制在轴上时不太可能重叠。

参数:
val布尔值或浮点数
  • 如果为 False,则不使用偏移表示法。

  • 如果为真(=自动模式),如果可以使残差数显著缩短,则使用偏移表示法。具体行为由 rcParams["axes.formatter.offset_threshold"] (default: 4) 控制。

  • 如果是数字,强制设置给定值的偏移量。

示例

使用活动偏移符号,这些值

100_000, 100_002, 100_004, 100_006, 100_008

将被格式化为 0, 2, 4, 6, 8 加上一个偏移量 +1e5,这将被写到轴的边缘。

property useLocale#

返回是否使用区域设置进行格式化。

property useMathText#

返回是否使用花哨的数学格式化。

property useOffset#

返回偏移表示法的自动模式是否处于活动状态。

如果调用 set_useOffset(True),则返回 True;如果设置了显式偏移,例如 set_useOffset(1000),则返回 False。

class matplotlib.ticker.StrMethodFormatter(fmt)[源代码][源代码]#

基类:Formatter

使用新样式的格式字符串(如 str.format 所使用的)来格式化刻度。

用于刻度值的字段必须标记为 x,用于刻度位置的字段必须标记为 pos

格式化器在格式化负数值时会遵循 rcParams["axes.unicode_minus"] (default: True) 。

通常不需要显式构造 StrMethodFormatter 对象,因为 set_major_formatter 直接接受格式字符串本身。

class matplotlib.ticker.SymmetricalLogLocator(transform=None, subs=None, linthresh=None, base=None)[源代码][源代码]#

基类:Locator

在零附近线性放置刻度,并在阈值之外对数放置刻度。

参数:
变换 : SymmetricalLogTransform, 可选SymmetricalLogTransform, 可选

如果设置,定义 symlog 变换的 baselinthresh

base, linthreshfloat, 可选

SymmetricalLogScale 文档中记录的 baselinthresh 参数。这些参数仅在 transform 未设置时使用。

subs浮点数序列,默认值:[1]

在基数整数幂的倍数处放置刻度,即,刻度放置在 [sub * base**i for i in ... for sub in subs]

注释

必须给出 transform 或同时给出 baselinthresh

set_params(subs=None, numticks=None)[源代码][源代码]#

在此定位器中设置参数。

tick_values(vmin, vmax)[源代码][源代码]#

返回给定 vminvmax 的定位刻度值。

备注

要获取自动定义了 vmin 和 vmax 值的关联 的刻度位置,只需调用 Locator 实例:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
view_limits(vmin, vmax)[源代码][源代码]#

尝试智能地选择视图限制。

class matplotlib.ticker.TickHelper[源代码][源代码]#

基类:object

axis = None#
create_dummy_axis(**kwargs)[源代码][源代码]#
set_axis(axis)[源代码][源代码]#

Inheritance diagram of matplotlib.ticker