matplotlib.scale
#
比例尺定义了数据值在轴上的分布,例如对数缩放。它们被定义为 ScaleBase
的子类。
另请参阅 axes.Axes.set_xscale
以及文档中的比例示例。
有关定义自定义比例的完整示例,请参阅 自定义比例。
Matplotlib 还支持非可分离变换,这些变换同时作用于 Axis
。它们被称为投影,定义在 matplotlib.projections
中。
- class matplotlib.scale.AsinhScale(axis, *, linear_width=1.0, base=10, subs='auto', **kwargs)[源代码][源代码]#
基类:
ScaleBase
基于反双曲正弦(asinh)的准对数尺度
对于接近零的值,这本质上是一个线性刻度,但对于大数值(无论是正还是负),它是渐近对数的。这种线性和对数刻度之间的过渡是平滑的,与 `.SymmetricalLogScale`(“symlog”)刻度相比,函数梯度没有不连续性。
具体来说,轴坐标 \(a\) 的变换为 \(a \rightarrow a_0 \sinh^{-1} (a / a_0)\),其中 \(a_0\) 是变换线性区域的有效宽度。在该区域内,变换为 \(a \rightarrow a + \mathcal{O}(a^3)\)。对于较大的 \(a\) 值,变换表现为 \(a \rightarrow a_0 \, \mathrm{sgn}(a) \ln |a| + \mathcal{O}(1)\)。
备注
此API是暂定的,可能会根据早期用户反馈在未来进行修订。
- 参数:
- linear_widthfloat, 默认值: 1
尺度参数(在其他地方称为 \(a_0\))定义了准线性区域的扩展范围,以及变换变为渐近对数时的坐标值。
- 基础int, 默认值: 10
用于在对数刻度上舍入刻度位置的数字基数。如果这个值小于一,那么舍入是到最接近的十的幂的整数倍。
- subsint 序列
用于次刻度的小数基数的倍数。如果设置为 'auto',这将使用内置的默认值,例如对于 base=10,使用 (2, 5)。
- auto_tick_multipliers = {3: (2,), 4: (2,), 5: (2,), 8: (2, 4), 10: (2, 5), 16: (2, 4, 8), 64: (4, 16), 1024: (256, 512)}#
- property linear_width#
!! 由 numpydoc 处理 !!
- name = 'asinh'#
- class matplotlib.scale.AsinhTransform(linear_width)[源代码][源代码]#
基类:
Transform
由
AsinhScale
使用的反双曲正弦变换- 参数:
- 简称str
一个表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高
str(transform)
的可读性外,没有其他意义。
- has_inverse = True#
如果此变换有对应的逆变换,则为真。
- input_dims = 1#
此变换的输入维度数量。必须在子类中被重写(使用整数)。
- inverted()[源代码][源代码]#
返回相应的逆变换。
它持有
x == self.inverted().transform(self.transform(x))
。此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。
- is_separable = True#
如果此变换在x和y维度上是可分离的,则为True。
- output_dims = 1#
此变换的输出维度数量。必须在子类中用整数重写。
- transform_non_affine(values)[源代码][源代码]#
仅应用此变换的非仿射部分。
transform(values)
总是等同于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等同于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- 值数组
输入值为长度
input_dims
的数组或形状为 (N,input_dims
)。
- 返回:
- 数组
输出值为一个长度为
output_dims
的数组,或形状为 (N,output_dims
),取决于输入。
- class matplotlib.scale.FuncScale(axis, functions)[源代码][源代码]#
基类:
ScaleBase
为轴提供一个用户自定义函数的任意刻度。
- 参数:
- 轴 :
Axis
轴 比例尺的轴。
- 函数(可调用对象,可调用对象)
用于缩放的正向和反向函数的二元组。正向函数必须是单调的。
两个函数必须具有以下签名:
def forward(values: array-like) -> array-like
- 轴 :
- get_transform()[源代码][源代码]#
返回与此刻度关联的
FuncTransform
。
- name = 'function'#
- class matplotlib.scale.FuncScaleLog(axis, functions, base=10)[源代码][源代码]#
基类:
LogScale
提供一个用户自定义函数的任意刻度,然后将其放在对数轴上。
- 参数:
- 轴 :
Axis
轴 比例尺的轴。
- 函数(可调用对象,可调用对象)
用于缩放的正向和反向函数的二元组。正向函数必须是单调的。
两个函数必须具有以下签名:
def forward(values: array-like) -> array-like
- 基础float, 默认值: 10
刻度的对数基数。
- 轴 :
- property base#
!! 由 numpydoc 处理 !!
- name = 'functionlog'#
- class matplotlib.scale.FuncTransform(forward, inverse)[源代码][源代码]#
基类:
Transform
一个简单的变换,接受任意的前向和逆变换函数。
- 参数:
- 向前可调用
变换的前向函数。这个函数必须有逆函数,并且为了最佳表现,应该是单调的。它必须有以下签名:
def forward(values: array-like) -> array-like
- 反向可调用
前向函数的逆函数。签名与
forward
相同。
- has_inverse = True#
如果此变换有对应的逆变换,则为真。
- input_dims = 1#
此变换的输入维度数量。必须在子类中被重写(使用整数)。
- inverted()[源代码][源代码]#
返回相应的逆变换。
它持有
x == self.inverted().transform(self.transform(x))
。此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。
- is_separable = True#
如果此变换在x和y维度上是可分离的,则为True。
- output_dims = 1#
此变换的输出维度数量。必须在子类中用整数重写。
- transform_non_affine(values)[源代码][源代码]#
仅应用此变换的非仿射部分。
transform(values)
总是等同于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等同于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- 值数组
输入值为长度
input_dims
的数组或形状为 (N,input_dims
)。
- 返回:
- 数组
输出值为一个长度为
output_dims
的数组,或形状为 (N,output_dims
),取决于输入。
- class matplotlib.scale.InvertedAsinhTransform(linear_width)[源代码][源代码]#
基类:
Transform
AsinhScale
使用的双曲正弦变换- 参数:
- 简称str
一个表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高
str(transform)
的可读性外,没有其他意义。
- has_inverse = True#
如果此变换有对应的逆变换,则为真。
- input_dims = 1#
此变换的输入维度数量。必须在子类中被重写(使用整数)。
- inverted()[源代码][源代码]#
返回相应的逆变换。
它持有
x == self.inverted().transform(self.transform(x))
。此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。
- is_separable = True#
如果此变换在x和y维度上是可分离的,则为True。
- output_dims = 1#
此变换的输出维度数量。必须在子类中用整数重写。
- transform_non_affine(values)[源代码][源代码]#
仅应用此变换的非仿射部分。
transform(values)
总是等同于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等同于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- 值数组
输入值为长度
input_dims
的数组或形状为 (N,input_dims
)。
- 返回:
- 数组
输出值为一个长度为
output_dims
的数组,或形状为 (N,output_dims
),取决于输入。
- class matplotlib.scale.InvertedLogTransform(base)[源代码][源代码]#
基类:
Transform
- 参数:
- 简称str
一个表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高
str(transform)
的可读性外,没有其他意义。
- has_inverse = True#
如果此变换有对应的逆变换,则为真。
- input_dims = 1#
此变换的输入维度数量。必须在子类中被重写(使用整数)。
- inverted()[源代码][源代码]#
返回相应的逆变换。
它持有
x == self.inverted().transform(self.transform(x))
。此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。
- is_separable = True#
如果此变换在x和y维度上是可分离的,则为True。
- output_dims = 1#
此变换的输出维度数量。必须在子类中用整数重写。
- transform_non_affine(values)[源代码][源代码]#
仅应用此变换的非仿射部分。
transform(values)
总是等同于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等同于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- 值数组
输入值为长度
input_dims
的数组或形状为 (N,input_dims
)。
- 返回:
- 数组
输出值为一个长度为
output_dims
的数组,或形状为 (N,output_dims
),取决于输入。
- class matplotlib.scale.InvertedSymmetricalLogTransform(base, linthresh, linscale)[源代码][源代码]#
基类:
Transform
- 参数:
- 简称str
一个表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高
str(transform)
的可读性外,没有其他意义。
- has_inverse = True#
如果此变换有对应的逆变换,则为真。
- input_dims = 1#
此变换的输入维度数量。必须在子类中被重写(使用整数)。
- inverted()[源代码][源代码]#
返回相应的逆变换。
它持有
x == self.inverted().transform(self.transform(x))
。此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。
- is_separable = True#
如果此变换在x和y维度上是可分离的,则为True。
- output_dims = 1#
此变换的输出维度数量。必须在子类中用整数重写。
- transform_non_affine(values)[源代码][源代码]#
仅应用此变换的非仿射部分。
transform(values)
总是等同于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等同于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- 值数组
输入值为长度
input_dims
的数组或形状为 (N,input_dims
)。
- 返回:
- 数组
输出值为一个长度为
output_dims
的数组,或形状为 (N,output_dims
),取决于输入。
- class matplotlib.scale.LinearScale(axis)[源代码][源代码]#
基类:
ScaleBase
默认的线性刻度。
- get_transform()[源代码][源代码]#
返回线性缩放的变换,这仅仅是
IdentityTransform
。
- name = 'linear'#
- class matplotlib.scale.LogScale(axis, *, base=10, subs=None, nonpositive='clip')[源代码][源代码]#
基类:
ScaleBase
标准对数刻度。特别注意只绘制正值。
- 参数:
- 轴 :
Axis
轴 比例尺的轴。
- 基础float, 默认值: 10
对数的底数。
- 非正数{'clip', 'mask'}, 默认: 'clip'
确定非正值的行为。它们可以被屏蔽为无效,或者被裁剪为一个非常小的正值。
- subsint 序列,默认值:None
在每个主刻度之间放置次刻度的位置。例如,在log10刻度中,
[2, 3, 4, 5, 6, 7, 8, 9]
将在每个主刻度之间放置8个对数间隔的次刻度。
- 轴 :
- property base#
!! 由 numpydoc 处理 !!
- get_transform()[源代码][源代码]#
返回与此比例关联的
LogTransform
。
- name = 'log'#
- class matplotlib.scale.LogTransform(base, nonpositive='clip')[源代码][源代码]#
基类:
Transform
- 参数:
- 简称str
一个表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高
str(transform)
的可读性外,没有其他意义。
- has_inverse = True#
如果此变换有对应的逆变换,则为真。
- input_dims = 1#
此变换的输入维度数量。必须在子类中被重写(使用整数)。
- inverted()[源代码][源代码]#
返回相应的逆变换。
它持有
x == self.inverted().transform(self.transform(x))
。此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。
- is_separable = True#
如果此变换在x和y维度上是可分离的,则为True。
- output_dims = 1#
此变换的输出维度数量。必须在子类中用整数重写。
- transform_non_affine(values)[源代码][源代码]#
仅应用此变换的非仿射部分。
transform(values)
总是等同于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等同于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- 值数组
输入值为长度
input_dims
的数组或形状为 (N,input_dims
)。
- 返回:
- 数组
输出值为一个长度为
output_dims
的数组,或形状为 (N,output_dims
),取决于输入。
- class matplotlib.scale.LogisticTransform(nonpositive='mask')[源代码][源代码]#
基类:
Transform
- 参数:
- 简称str
一个表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高
str(transform)
的可读性外,没有其他意义。
- has_inverse = True#
如果此变换有对应的逆变换,则为真。
- input_dims = 1#
此变换的输入维度数量。必须在子类中被重写(使用整数)。
- inverted()[源代码][源代码]#
返回相应的逆变换。
它持有
x == self.inverted().transform(self.transform(x))
。此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。
- is_separable = True#
如果此变换在x和y维度上是可分离的,则为True。
- output_dims = 1#
此变换的输出维度数量。必须在子类中用整数重写。
- class matplotlib.scale.LogitScale(axis, nonpositive='mask', *, one_half='\\frac{1}{2}', use_overline=False)[源代码][源代码]#
基类:
ScaleBase
介于零和一之间(均不包括)的数据的对数几率尺度。
这个尺度在接近零和一的地方类似于对数尺度,而在0.5附近几乎是线性的。它将区间 ]0, 1[ 映射到 ]-infty, +infty[。
- 参数:
- 轴 :
Axis
轴 当前未使用。
- 非正数{'mask', 'clip'}
确定超出开区间 ]0, 1[ 的值的行为。它们可以被屏蔽为无效,或者被裁剪到一个非常接近 0 或 1 的数字。
- use_overlinebool, 默认值: False
指示在概率接近1时使用生存符号(overline{x})代替标准符号(1-x)。
- one_half : str, 默认值: r"frac{1}{2}"str, 默认值: r"frac{1}{2}"
用于刻度格式化程序以表示1/2的字符串。
- 轴 :
- get_transform()[源代码][源代码]#
返回与此刻度关联的
LogitTransform
。
- name = 'logit'#
- class matplotlib.scale.LogitTransform(nonpositive='mask')[源代码][源代码]#
基类:
Transform
- 参数:
- 简称str
一个表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高
str(transform)
的可读性外,没有其他意义。
- has_inverse = True#
如果此变换有对应的逆变换,则为真。
- input_dims = 1#
此变换的输入维度数量。必须在子类中被重写(使用整数)。
- inverted()[源代码][源代码]#
返回相应的逆变换。
它持有
x == self.inverted().transform(self.transform(x))
。此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。
- is_separable = True#
如果此变换在x和y维度上是可分离的,则为True。
- output_dims = 1#
此变换的输出维度数量。必须在子类中用整数重写。
- class matplotlib.scale.ScaleBase(axis)[源代码][源代码]#
基类:
object
所有刻度的基类。
比例尺是可分离的变换,作用于单一维度。
子类应重写
名称
刻度的名称。
get_transform()
返回一个
Transform
的方法,该方法将数据坐标转换为缩放坐标。此转换应该是可逆的,以便例如鼠标位置可以转换回数据坐标。set_default_locators_and_formatters()
为使用此比例的
Axis
设置默认定位器和格式化器的方法。limit_range_for_scale()
一个可选的方法,用于“修正”轴的范围为可接受的值,例如,限制对数刻度轴为正值。
构建一个新的比例尺。
注释
以下说明适用于比例实现者。
出于向后兼容的原因,比例尺将
Axis
对象作为第一个参数。然而,这个参数不应被使用:一个比例尺对象应能同时被多个Axis
对象使用。
- class matplotlib.scale.SymmetricalLogScale(axis, *, base=10, linthresh=2, subs=None, linscale=1)[源代码][源代码]#
基类:
ScaleBase
对称对数尺度在原点的正负方向上都是对数的。
由于接近零的值趋向于无穷大,因此需要在零附近有一个线性范围。参数 linthresh 允许用户指定此范围的大小(-linthresh, linthresh)。
- 参数:
- 基础float, 默认值: 10
对数的底数。
- linthreshfloat, 默认值: 2
定义范围
(-x, x)
,在该范围内绘图是线性的。这避免了绘图在零附近趋向无穷大。- subsint 序列
在每个主刻度之间放置副刻度的位置。例如,在log10刻度中:
[2, 3, 4, 5, 6, 7, 8, 9]
将在每个主刻度之间放置8个对数间隔的副刻度。- linscale浮点数,可选
这允许线性范围
(-linthresh, linthresh)
相对于对数范围进行拉伸。其值是用于线性范围每一半的十进制数。例如,当 linscale == 1.0(默认值)时,线性范围的正负两半所使用的空间将等于对数范围中的一十年。
构建一个新的比例尺。
注释
以下说明适用于比例实现者。
出于向后兼容的原因,比例尺将
Axis
对象作为第一个参数。然而,这个参数不应被使用:一个比例尺对象应能同时被多个Axis
对象使用。- property base#
!! 由 numpydoc 处理 !!
- get_transform()[源代码][源代码]#
返回与此刻度关联的
SymmetricalLogTransform
。
- property linscale#
!! 由 numpydoc 处理 !!
- property linthresh#
!! 由 numpydoc 处理 !!
- name = 'symlog'#
- class matplotlib.scale.SymmetricalLogTransform(base, linthresh, linscale)[源代码][源代码]#
基类:
Transform
- 参数:
- 简称str
一个表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高
str(transform)
的可读性外,没有其他意义。
- has_inverse = True#
如果此变换有对应的逆变换,则为真。
- input_dims = 1#
此变换的输入维度数量。必须在子类中被重写(使用整数)。
- inverted()[源代码][源代码]#
返回相应的逆变换。
它持有
x == self.inverted().transform(self.transform(x))
。此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。
- is_separable = True#
如果此变换在x和y维度上是可分离的,则为True。
- output_dims = 1#
此变换的输出维度数量。必须在子类中用整数重写。
- transform_non_affine(values)[源代码][源代码]#
仅应用此变换的非仿射部分。
transform(values)
总是等同于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等同于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- 值数组
输入值为长度
input_dims
的数组或形状为 (N,input_dims
)。
- 返回:
- 数组
输出值为一个长度为
output_dims
的数组,或形状为 (N,output_dims
),取决于输入。