matplotlib.scale
#
标度定义了轴上数据值的分布,例如对数标度。
映射通过 Transform
子类实现。
以下标度是内置的
名称 |
类 |
变换 |
反向变换 |
---|---|---|---|
"asinh" |
|||
"function" |
|||
"functionlog" |
|||
"linear" |
|||
"log" |
|||
"logit" |
|||
"symlog" |
用户通常只使用标度名称,例如通过 set_xscale
设置标度时: ax.set_xscale("log")
。
另请参阅文档中的 标度示例。
可以通过 FuncScale
,或通过创建您自己的 ScaleBase
子类和相应的变换来实现自定义标度(参见自定义标度)。第三方可以通过 register_scale
按名称注册他们的标度。
- class matplotlib.scale.ScaleBase(axis)[source]#
基类:
object
所有标度的基类。
标度是可分离的变换,作用于单个维度。
子类应覆盖
name
该标度的名称。
get_transform()
返回一个
Transform
的方法,该变换将数据坐标转换为标度坐标。此变换应可逆,以便例如鼠标位置可以转换回数据坐标。set_default_locators_and_formatters()
为使用此标度的
Axis
设置默认定位器和格式器的方法。limit_range_for_scale()
一个可选方法,将轴范围“固定”到可接受的值,例如将对数标度轴限制为正值。
构造一个新的标度。
备注
以下注释适用于标度实现者。
出于向后兼容性原因,标度将
Axis
对象作为第一个参数。然而,不应使用此参数:单个标度对象应可被多个Axis
同时使用。
- class matplotlib.scale.LinearScale(axis)[source]#
基类:
ScaleBase
默认的线性标度。
- name = 'linear'#
- get_transform()[source]#
返回线性标度的变换,即
IdentityTransform
。
- class matplotlib.scale.FuncTransform(forward, inverse)[source]#
基类:
Transform
一个简单的变换,它接受用于正向和反向变换的任意函数。
- 参数:
- forward可调用对象
变换的正向函数。此函数必须具有逆函数,并且为了获得最佳行为,必须是单调的。它必须具有以下签名:
def forward(values: array-like) -> array-like
- inverse可调用对象
正向函数的逆函数。签名与
forward
相同。
- input_dims = 1#
此变换的输入维度数量。必须在子类中重写(使用整数)。
- output_dims = 1#
此变换的输出维度数量。必须在子类中重写(使用整数)。
- transform_non_affine(values)[source]#
仅应用此变换的非仿射部分。
transform(values)
始终等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等价于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- values数组
输入值,为长度为
input_dims
或形状为 (N,input_dims
) 的数组。
- 返回:
- array
输出值,为长度为
output_dims
或形状为 (N,output_dims
) 的数组,具体取决于输入。
- inverted()[source]#
返回相应的逆变换。
它满足
x == self.inverted().transform(self.transform(x))
。此方法的返回值应被视为临时值。对 self 的更新不会导致其逆副本的相应更新。
- has_inverse = True#
如果此变换具有相应的逆变换,则为 True。
- is_separable = True#
如果此变换在 x 轴和 y 轴维度上是可分离的,则为 True。
- class matplotlib.scale.FuncScale(axis, functions)[source]#
基类:
ScaleBase
为轴提供具有用户提供函数的任意标度。
- 参数:
- axis
Axis
标度所作用的轴。
- functions(可调用对象, 可调用对象)
标度的正向和反向函数的二元组。正向函数必须是单调的。
两个函数都必须具有以下签名:
def forward(values: array-like) -> array-like
- axis
- name = 'function'#
- get_transform()[source]#
返回与此标度关联的
FuncTransform
对象。
- class matplotlib.scale.LogTransform(base, nonpositive='clip')[source]#
基类:
Transform
- 参数:
- shorthand_namestr
表示变换“名称”的字符串。除了提高在 DEBUG=True 时
str(transform)
的可读性之外,此名称没有其他意义。
- input_dims = 1#
此变换的输入维度数量。必须在子类中重写(使用整数)。
- output_dims = 1#
此变换的输出维度数量。必须在子类中重写(使用整数)。
- transform_non_affine(values)[source]#
仅应用此变换的非仿射部分。
transform(values)
始终等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等价于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- values数组
输入值,为长度为
input_dims
或形状为 (N,input_dims
) 的数组。
- 返回:
- array
输出值,为长度为
output_dims
或形状为 (N,output_dims
) 的数组,具体取决于输入。
- inverted()[source]#
返回相应的逆变换。
它满足
x == self.inverted().transform(self.transform(x))
。此方法的返回值应被视为临时值。对 self 的更新不会导致其逆副本的相应更新。
- has_inverse = True#
如果此变换具有相应的逆变换,则为 True。
- is_separable = True#
如果此变换在 x 轴和 y 轴维度上是可分离的,则为 True。
- class matplotlib.scale.InvertedLogTransform(base)[source]#
基类:
Transform
- 参数:
- shorthand_namestr
表示变换“名称”的字符串。除了提高在 DEBUG=True 时
str(transform)
的可读性之外,此名称没有其他意义。
- input_dims = 1#
此变换的输入维度数量。必须在子类中重写(使用整数)。
- output_dims = 1#
此变换的输出维度数量。必须在子类中重写(使用整数)。
- transform_non_affine(values)[source]#
仅应用此变换的非仿射部分。
transform(values)
始终等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等价于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- values数组
输入值,为长度为
input_dims
或形状为 (N,input_dims
) 的数组。
- 返回:
- array
输出值,为长度为
output_dims
或形状为 (N,output_dims
) 的数组,具体取决于输入。
- inverted()[source]#
返回相应的逆变换。
它满足
x == self.inverted().transform(self.transform(x))
。此方法的返回值应被视为临时值。对 self 的更新不会导致其逆副本的相应更新。
- has_inverse = True#
如果此变换具有相应的逆变换,则为 True。
- is_separable = True#
如果此变换在 x 轴和 y 轴维度上是可分离的,则为 True。
- class matplotlib.scale.LogScale(axis, *, base=10, subs=None, nonpositive='clip')[source]#
基类:
ScaleBase
一个标准的对数标度。注意只绘制正值。
- 参数:
- axis
Axis
标度所作用的轴。
- base浮点型,默认值: 10
对数的基数。
- nonpositive{'clip', 'mask'}, 默认值: 'clip'
确定非正值的行为。它们可以被遮罩为无效,或者裁剪为非常小的正数。
- subs整数序列, 默认值: None
在每个主刻度线之间放置副刻度线的位置。例如,在 log10 标度中,
[2, 3, 4, 5, 6, 7, 8, 9]
将在每个主刻度线之间放置 8 个对数间隔的次刻度线。
- axis
- name = 'log'#
- property base#
- get_transform()[source]#
返回与此标度关联的
LogTransform
对象。
- class matplotlib.scale.FuncScaleLog(axis, functions, base=10)[source]#
基类:
LogScale
为轴提供具有用户提供函数的任意标度,然后将其置于对数轴上。
- 参数:
- axis
Axis
标度所作用的轴。
- functions(可调用对象, 可调用对象)
标度的正向和反向函数的二元组。正向函数必须是单调的。
两个函数都必须具有以下签名:
def forward(values: array-like) -> array-like
- base浮点型,默认值: 10
标度的对数基数。
- axis
- name = 'functionlog'#
- property base#
- class matplotlib.scale.SymmetricalLogTransform(base, linthresh, linscale)[source]#
基类:
Transform
- 参数:
- shorthand_namestr
表示变换“名称”的字符串。除了提高在 DEBUG=True 时
str(transform)
的可读性之外,此名称没有其他意义。
- input_dims = 1#
此变换的输入维度数量。必须在子类中重写(使用整数)。
- output_dims = 1#
此变换的输出维度数量。必须在子类中重写(使用整数)。
- transform_non_affine(values)[source]#
仅应用此变换的非仿射部分。
transform(values)
始终等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等价于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- values数组
输入值,作为一个长度为
input_dims
的数组或形状为 (N,input_dims
) 的数组。
- 返回:
- array
输出值,作为一个长度为
output_dims
的数组或形状为 (N,output_dims
) 的数组,具体取决于输入。
- inverted()[source]#
返回相应的逆变换。
它满足
x == self.inverted().transform(self.transform(x))
。此方法的返回值应被视为临时值。对 self 的更新不会导致其逆副本的相应更新。
- has_inverse = True#
如果此变换具有相应的逆变换,则为 True。
- is_separable = True#
如果此变换在 x 轴和 y 轴维度上是可分离的,则为 True。
- class matplotlib.scale.InvertedSymmetricalLogTransform(base, linthresh, linscale)[source]#
基类:
Transform
- 参数:
- shorthand_namestr
表示变换“名称”的字符串。除了提高在 DEBUG=True 时
str(transform)
的可读性之外,此名称没有其他意义。
- input_dims = 1#
此变换的输入维度数量。必须在子类中重写(使用整数)。
- output_dims = 1#
此变换的输出维度数量。必须在子类中重写(使用整数)。
- transform_non_affine(values)[source]#
仅应用此变换的非仿射部分。
transform(values)
始终等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等价于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- values数组
输入值,作为一个长度为
input_dims
的数组或形状为 (N,input_dims
) 的数组。
- 返回:
- array
输出值,作为一个长度为
output_dims
的数组或形状为 (N,output_dims
) 的数组,具体取决于输入。
- inverted()[source]#
返回相应的逆变换。
它满足
x == self.inverted().transform(self.transform(x))
。此方法的返回值应被视为临时值。对 self 的更新不会导致其逆副本的相应更新。
- has_inverse = True#
如果此变换具有相应的逆变换,则为 True。
- is_separable = True#
如果此变换在 x 轴和 y 轴维度上是可分离的,则为 True。
- class matplotlib.scale.SymmetricalLogScale(axis, *, base=10, linthresh=2, subs=None, linscale=1)[source]#
基类:
ScaleBase
对称对数刻度在原点的正负方向上都是对数的。
由于接近零的值趋向于无穷大,因此需要一个围绕零的线性范围。参数 linthresh 允许用户指定此范围的大小(-linthresh, linthresh)。
有关详细描述,请参阅Symlog 刻度。
- 参数:
- base浮点型,默认值: 10
对数的基数。
- linthresh浮点数,默认值:2
定义绘图呈线性的范围
(-x, x)
。这避免了绘图在零点附近趋于无穷大。- subs整数序列
在每个主刻度之间放置副刻度的位置。例如,在 log10 刻度中:
[2, 3, 4, 5, 6, 7, 8, 9]
将在每个主刻度之间放置 8 个对数间隔的副刻度。- linscale浮点数,可选
这允许线性范围
(-linthresh, linthresh)
相对于对数范围进行拉伸。其值是线性范围每一半要使用的对数十年数。例如,当 linscale == 1.0(默认值)时,线性范围的正半部分和负半部分所占用的空间将等于对数范围中的一个十年。
构造一个新的标度。
备注
以下注释适用于标度实现者。
出于向后兼容性原因,标度将
Axis
对象作为第一个参数。然而,不应使用此参数:单个标度对象应可被多个Axis
同时使用。- name = 'symlog'#
- property base#
- property linthresh#
- property linscale#
- get_transform()[source]#
返回与此刻度关联的
SymmetricalLogTransform
。
- class matplotlib.scale.AsinhTransform(linear_width)[source]#
基类:
Transform
由
AsinhScale
使用的反双曲正弦变换- 参数:
- shorthand_namestr
表示变换“名称”的字符串。除了提高在 DEBUG=True 时
str(transform)
的可读性之外,此名称没有其他意义。
- input_dims = 1#
此变换的输入维度数量。必须在子类中重写(使用整数)。
- output_dims = 1#
此变换的输出维度数量。必须在子类中重写(使用整数)。
- transform_non_affine(values)[source]#
仅应用此变换的非仿射部分。
transform(values)
始终等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等价于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- values数组
输入值,作为一个长度为
input_dims
的数组或形状为 (N,input_dims
) 的数组。
- 返回:
- array
输出值,作为一个长度为
output_dims
的数组或形状为 (N,output_dims
) 的数组,具体取决于输入。
- inverted()[source]#
返回相应的逆变换。
它满足
x == self.inverted().transform(self.transform(x))
。此方法的返回值应被视为临时值。对 self 的更新不会导致其逆副本的相应更新。
- has_inverse = True#
如果此变换具有相应的逆变换,则为 True。
- is_separable = True#
如果此变换在 x 轴和 y 轴维度上是可分离的,则为 True。
- class matplotlib.scale.InvertedAsinhTransform(linear_width)[source]#
基类:
Transform
由
AsinhScale
使用的双曲正弦变换- 参数:
- shorthand_namestr
表示变换“名称”的字符串。除了提高在 DEBUG=True 时
str(transform)
的可读性之外,此名称没有其他意义。
- input_dims = 1#
此变换的输入维度数量。必须在子类中重写(使用整数)。
- output_dims = 1#
此变换的输出维度数量。必须在子类中重写(使用整数)。
- transform_non_affine(values)[source]#
仅应用此变换的非仿射部分。
transform(values)
始终等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等价于
transform(values)
。在仿射变换中,这始终是一个空操作。- 参数:
- values数组
输入值,作为一个长度为
input_dims
的数组或形状为 (N,input_dims
) 的数组。
- 返回:
- array
输出值,作为一个长度为
output_dims
的数组或形状为 (N,output_dims
) 的数组,具体取决于输入。
- inverted()[source]#
返回相应的逆变换。
它满足
x == self.inverted().transform(self.transform(x))
。此方法的返回值应被视为临时值。对 self 的更新不会导致其逆副本的相应更新。
- has_inverse = True#
如果此变换具有相应的逆变换,则为 True。
- is_separable = True#
如果此变换在 x 轴和 y 轴维度上是可分离的,则为 True。
- class matplotlib.scale.AsinhScale(axis, *, linear_width=1.0, base=10, subs='auto', **kwargs)[source]#
基类:
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_width浮点数,默认值:1
刻度参数(在其他地方也称为 \(a_0\)),定义了准线性区域的范围,以及变换渐近变为对数关系的坐标值。
- base整数,默认值:10
用于对数刻度上刻度位置进行舍入的底数。如果小于 1,则舍入到最接近的 10 的幂的整数倍。
- subs整数序列
用于次刻度的底数的倍数。如果设置为 'auto',将使用内置默认值,例如 base=10 时为 (2, 5)。
- name = 'asinh'#
- 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#
- class matplotlib.scale.LogitTransform(nonpositive='mask')[source]#
基类:
Transform
- 参数:
- shorthand_namestr
表示变换“名称”的字符串。除了提高在 DEBUG=True 时
str(transform)
的可读性之外,此名称没有其他意义。
- input_dims = 1#
此变换的输入维度数量。必须在子类中重写(使用整数)。
- output_dims = 1#
此变换的输出维度数量。必须在子类中重写(使用整数)。
- inverted()[source]#
返回相应的逆变换。
它满足
x == self.inverted().transform(self.transform(x))
。此方法的返回值应被视为临时值。对 self 的更新不会导致其逆副本的相应更新。
- has_inverse = True#
如果此变换具有相应的逆变换,则为 True。
- is_separable = True#
如果此变换在 x 轴和 y 轴维度上是可分离的,则为 True。
- class matplotlib.scale.LogisticTransform(nonpositive='mask')[source]#
基类:
Transform
- 参数:
- shorthand_namestr
表示变换“名称”的字符串。除了提高在 DEBUG=True 时
str(transform)
的可读性之外,此名称没有其他意义。
- input_dims = 1#
此变换的输入维度数量。必须在子类中重写(使用整数)。
- output_dims = 1#
此变换的输出维度数量。必须在子类中重写(使用整数)。
- inverted()[source]#
返回相应的逆变换。
它满足
x == self.inverted().transform(self.transform(x))
。此方法的返回值应被视为临时值。对 self 的更新不会导致其逆副本的相应更新。
- has_inverse = True#
如果此变换具有相应的逆变换,则为 True。
- is_separable = True#
如果此变换在 x 轴和 y 轴维度上是可分离的,则为 True。
- class matplotlib.scale.LogitScale(axis, nonpositive='mask', *, one_half='\\frac{1}{2}', use_overline=False)[source]#
基类:
ScaleBase
用于零和一之间(不包括零和一)数据的 Logit 刻度。
此刻度在接近零和一时类似于对数刻度,在 0.5 附近几乎是线性的。它将区间 ]0, 1[ 映射到 ]-∞, +∞[。
- 参数:
- axis
Axis
目前未使用。
- nonpositive{'mask', 'clip'}
决定超出开区间 ]0, 1[ 的值的行为。它们可以被遮罩为无效,或裁剪到非常接近 0 或 1 的值。
- use_overline布尔值,默认值:False
指示在概率接近 1 时,使用生存符号(overline{x})代替标准符号(1-x)。
- one_half字符串,默认值:r"frac{1}{2}"
用于刻度格式化程序以表示 1/2 的字符串。
- axis
- name = 'logit'#
- get_transform()[source]#
返回与此刻度关联的
LogitTransform
。