matplotlib.scale#

比例定义了数据值在轴上的分布,例如对数比例。它们被定义为 的子类ScaleBase

另请参阅axes.Axes.set_xscale文档中的比例示例。

有关定义自定义比例的完整示例,请参阅自定义比例。

Matplotlib 还支持同时在两者上运行的不可分离的转换 Axis。它们被称为投影,定义在 matplotlib.projections.

matplotlib.scale。AsinhScale (, * , 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 是临时的,将来可能会根据早期用户反馈进行修订。

参数
线性宽度浮动,默认值:1

比例参数(在其他地方称为\(a_0\)) 定义准线性区域的范围,以及超出该坐标值的变换变为渐近对数的坐标值。

基本整数,默认值:10

用于在对数刻度上舍入刻度位置的数字基数。如果小于一,则四舍五入到最接近的 10 次幂的整数倍。

int的子序列

用于次要刻度的数字基数的倍数。如果设置为“auto”,这将使用内置默认值,例如 (2, 5) 表示 base=10。

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)} #
get_transform ( ) [来源] #

返回Transform与此比例关联的对象。

属性 线性宽度#
名称= 'asinh' #
set_default_locators_and_formatters () [来源] #

的定位器和格式化程序设置为适合此比例的实例。

matplotlib.scale。AsinhTransform ( linear_width ) [来源] #

基地:Transform

反双曲正弦变换AsinhScale

参数
速记名 str

表示转换的“名称”的字符串。str(transform)除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。

has_inverse = True #

如果此变换具有相应的逆变换,则为真。

input_dims = 1 #

此变换的输入维数。必须在子类中被覆盖(使用整数)。

倒置( ) [来源] #

返回对应的逆变换。

它成立。x == self.inverted().transform(self.transform(x))

此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。

is_separable = True #

如果此变换在 x 和 y 维度上是可分离的,则为真。

output_dims = 1 #

此变换的输出维数。必须在子类中被覆盖(使用整数)。

transform_non_affine ( a ) [来源] #

仅应用此转换的非仿射部分。

transform(values)总是等价于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常等价于 transform(values)。在仿射变换中,这始终是空操作。

参数
数组

输入值作为长度input_dims或形状 (N x input_dims) 的 NumPy 数组。

返回
大批

输出值作为长度output_dims或形状 (N x output_dims) 的 NumPy 数组,具体取决于输入。

matplotlib.scale。FuncScale (,函数) [来源] #

基地:ScaleBase

使用用户提供的功能为轴提供任意比例。

参数
Axis

刻度轴。

函数(可调用,可调用)

尺度的正反函数的二元组。前向函数必须是单调的。

这两个函数都必须具有签名:

def forward(values: array-like) -> array-like
get_transform ( ) [来源] #

返回FuncTransform与此比例相关的。

名称= '功能' #
set_default_locators_and_formatters () [来源] #

的定位器和格式化程序设置为适合此比例的实例。

matplotlib.scale。FuncScaleLog (,函数, base = 10 ) [来源] #

基地:LogScale

使用用户提供的函数为轴提供任意比例,然后放在对数轴上。

参数
matplotlib.axis.Axis

刻度轴。

函数(可调用,可调用)

尺度的正反函数的二元组。前向函数必须是单调的。

这两个函数都必须具有签名:

def forward(values: array-like) -> array-like
基本浮点数,默认值:10

刻度的对数底。

属性 基础#
get_transform ( ) [来源] #

返回Transform与此比例相关的。

名称= '功能日志' #
matplotlib.scale。FuncTransform ( forward , inverse ) [来源] #

基地:Transform

一个简单的变换,它采用任意函数进行正向和逆变换。

参数
前向可调用

变换的前向函数。此函数必须具有逆函数,并且为了获得最佳行为,必须是单调的。它必须有签名:

def forward(values: array-like) -> array-like
反向可调用

前向函数的逆函数。签名为forward.

has_inverse = True #

如果此变换具有相应的逆变换,则为真。

input_dims = 1 #

此变换的输入维数。必须在子类中被覆盖(使用整数)。

倒置( ) [来源] #

返回对应的逆变换。

它成立。x == self.inverted().transform(self.transform(x))

此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。

is_separable = True #

如果此变换在 x 和 y 维度上是可分离的,则为真。

output_dims = 1 #

此变换的输出维数。必须在子类中被覆盖(使用整数)。

transform_non_affine () [来源] #

仅应用此转换的非仿射部分。

transform(values)总是等价于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常等价于 transform(values)。在仿射变换中,这始终是空操作。

参数
数组

输入值作为长度input_dims或形状 (N x input_dims) 的 NumPy 数组。

返回
大批

输出值作为长度output_dims或形状 (N x output_dims) 的 NumPy 数组,具体取决于输入。

matplotlib.scale。InvertedAsinhTransform ( linear_width ) [来源] #

基地:Transform

使用的双曲正弦变换AsinhScale

参数
速记名 str

表示转换的“名称”的字符串。str(transform)除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。

has_inverse = True #

如果此变换具有相应的逆变换,则为真。

input_dims = 1 #

此变换的输入维数。必须在子类中被覆盖(使用整数)。

倒置( ) [来源] #

返回对应的逆变换。

它成立。x == self.inverted().transform(self.transform(x))

此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。

is_separable = True #

如果此变换在 x 和 y 维度上是可分离的,则为真。

output_dims = 1 #

此变换的输出维数。必须在子类中被覆盖(使用整数)。

transform_non_affine ( a ) [来源] #

仅应用此转换的非仿射部分。

transform(values)总是等价于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常等价于 transform(values)。在仿射变换中,这始终是空操作。

参数
数组

输入值作为长度input_dims或形状 (N x input_dims) 的 NumPy 数组。

返回
大批

输出值作为长度output_dims或形状 (N x output_dims) 的 NumPy 数组,具体取决于输入。

matplotlib.scale。InvertedLogTransform ( base ) [来源] #

基地:Transform

参数
速记名 str

表示转换的“名称”的字符串。str(transform)除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。

has_inverse = True #

如果此变换具有相应的逆变换,则为真。

input_dims = 1 #

此变换的输入维数。必须在子类中被覆盖(使用整数)。

倒置( ) [来源] #

返回对应的逆变换。

它成立。x == self.inverted().transform(self.transform(x))

此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。

is_separable = True #

如果此变换在 x 和 y 维度上是可分离的,则为真。

output_dims = 1 #

此变换的输出维数。必须在子类中被覆盖(使用整数)。

transform_non_affine ( a ) [来源] #

仅应用此转换的非仿射部分。

transform(values)总是等价于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常等价于 transform(values)。在仿射变换中,这始终是空操作。

参数
数组

输入值作为长度input_dims或形状 (N x input_dims) 的 NumPy 数组。

返回
大批

输出值作为长度output_dims或形状 (N x output_dims) 的 NumPy 数组,具体取决于输入。

matplotlib.scale。InvertedSymmetricalLogTransform ( base , linthresh , linscale ) [source] #

基地:Transform

参数
速记名 str

表示转换的“名称”的字符串。str(transform)除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。

has_inverse = True #

如果此变换具有相应的逆变换,则为真。

input_dims = 1 #

此变换的输入维数。必须在子类中被覆盖(使用整数)。

倒置( ) [来源] #

返回对应的逆变换。

它成立。x == self.inverted().transform(self.transform(x))

此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。

is_separable = True #

如果此变换在 x 和 y 维度上是可分离的,则为真。

output_dims = 1 #

此变换的输出维数。必须在子类中被覆盖(使用整数)。

transform_non_affine ( a ) [来源] #

仅应用此转换的非仿射部分。

transform(values)总是等价于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常等价于 transform(values)。在仿射变换中,这始终是空操作。

参数
数组

输入值作为长度input_dims或形状 (N x input_dims) 的 NumPy 数组。

返回
大批

输出值作为长度output_dims或形状 (N x output_dims) 的 NumPy 数组,具体取决于输入。

matplotlib.scale。LinearScale () [来源] #

基地:ScaleBase

默认线性比例。

get_transform ( ) [来源] #

返回线性缩放的变换,这只是 IdentityTransform.

名称= '线性' #
set_default_locators_and_formatters () [来源] #

的定位器和格式化程序设置为适合此比例的实例。

matplotlib.scale。LogScale (, * , base = 10 , subs = None , nonpositive = 'clip' ) [source] #

基地:ScaleBase

标准对数刻度。注意仅绘制正值。

参数
Axis

刻度轴。

基本浮点数,默认值:10

对数的底。

非正数{'clip', 'mask'},默认值:'clip'

确定非正值的行为。它们可以被屏蔽为无效,或者被剪裁为一个非常小的正数。

序列 int,默认值:无

在每个主要刻度之间放置子刻度的位置。例如,在 log10 刻度中,将在每个主要刻度之间放置 8 个对数间隔的次要刻度。[2, 3, 4, 5, 6, 7, 8, 9]

属性 基础#
get_transform ( ) [来源] #

返回LogTransform与此比例相关的。

limit_range_for_scale ( vmin , vmax , minpos ) [来源] #

将域限制为正值。

名称= '日志' #
set_default_locators_and_formatters () [来源] #

的定位器和格式化程序设置为适合此比例的实例。

matplotlib.scale。LogTransform ( base , nonpositive = 'clip' ) [source] #

基地:Transform

参数
速记名 str

表示转换的“名称”的字符串。str(transform)除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。

has_inverse = True #

如果此变换具有相应的逆变换,则为真。

input_dims = 1 #

此变换的输入维数。必须在子类中被覆盖(使用整数)。

倒置( ) [来源] #

返回对应的逆变换。

它成立。x == self.inverted().transform(self.transform(x))

此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。

is_separable = True #

如果此变换在 x 和 y 维度上是可分离的,则为真。

output_dims = 1 #

此变换的输出维数。必须在子类中被覆盖(使用整数)。

transform_non_affine ( a ) [来源] #

仅应用此转换的非仿射部分。

transform(values)总是等价于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常等价于 transform(values)。在仿射变换中,这始终是空操作。

参数
数组

输入值作为长度input_dims或形状 (N x input_dims) 的 NumPy 数组。

返回
大批

输出值作为长度output_dims或形状 (N x output_dims) 的 NumPy 数组,具体取决于输入。

matplotlib.scale。LogisticTransform ( nonpositive = 'mask' ) [来源] #

基地:Transform

参数
速记名 str

表示转换的“名称”的字符串。str(transform)除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。

has_inverse = True #

如果此变换具有相应的逆变换,则为真。

input_dims = 1 #

此变换的输入维数。必须在子类中被覆盖(使用整数)。

倒置( ) [来源] #

返回对应的逆变换。

它成立。x == self.inverted().transform(self.transform(x))

此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。

is_separable = True #

如果此变换在 x 和 y 维度上是可分离的,则为真。

output_dims = 1 #

此变换的输出维数。必须在子类中被覆盖(使用整数)。

transform_non_affine ( a ) [来源] #

逻辑变换(以 10 为基数)

matplotlib.scale。LogitScale (, nonpositive = 'mask' , * , one_half = '\\frac{1}{2}' , use_overline = False ) [来源] #

基地:ScaleBase

0 到 1 之间数据的 Logit 标度,均不包括在内。

该比例类似于接近零和接近一的对数比例,并且在 0.5 附近几乎是线性的。它将区间 ]0, 1[ 映射到 ]-infty, +infty[。

参数
matplotlib.axis.Axis

目前未使用。

非正{'掩码','剪辑'}

确定超出开区间]0、1[ 的值的行为。它们可以被屏蔽为无效,或者被剪裁为非常接近 0 或 1 的数字。

use_overline布尔值,默认值:False

指出使用生存符号 (overline{x}) 代替标准符号 (1-x) 来表示概率接近一。

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

用于刻度格式化程序的字符串表示 1/2。

get_transform ( ) [来源] #

返回LogitTransform与此比例相关的。

limit_range_for_scale ( vmin , vmax , minpos ) [来源] #

将域限制为 0 到 1 之间的值(排除)。

名称= 'logit' #
set_default_locators_and_formatters () [来源] #

的定位器和格式化程序设置为适合此比例的实例。

matplotlib.scale。LogitTransform ( nonpositive = 'mask' ) [source] #

基地:Transform

参数
速记名 str

表示转换的“名称”的字符串。str(transform)除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。

has_inverse = True #

如果此变换具有相应的逆变换,则为真。

input_dims = 1 #

此变换的输入维数。必须在子类中被覆盖(使用整数)。

倒置( ) [来源] #

返回对应的逆变换。

它成立。x == self.inverted().transform(self.transform(x))

此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。

is_separable = True #

如果此变换在 x 和 y 维度上是可分离的,则为真。

output_dims = 1 #

此变换的输出维数。必须在子类中被覆盖(使用整数)。

transform_non_affine ( a ) [来源] #

logit 变换(以 10 为底),屏蔽或裁剪

matplotlib.scale。ScaleBase () [来源] #

基地:object

所有尺度的基类。

尺度是可分离的变换,作用于单一维度。

子类应该覆盖

name

秤的名称。

get_transform()

返回 a 的方法Transform,它将数据坐标转换为缩放坐标。这种转换应该是可逆的,以便例如鼠标位置可以转换回数据坐标。

set_default_locators_and_formatters()

一种为Axis 使用此比例的对象设置默认定位器和格式化程序的方法。

limit_range_for_scale()

一种将轴范围“固定”为可接受值的可选方法,例如将对数刻度轴限制为正值。

构建一个新的尺度。

笔记

以下说明适用于规模实施者。

出于向后兼容的原因,尺度将Axis 对象作为第一个参数。但是,不应该使用这个参数:单个比例对象应该可以同时被多个 Axises 使用。

get_transform ( ) [来源] #

返回Transform与此比例关联的对象。

limit_range_for_scale ( vmin , vmax , minpos ) [来源] #

返回范围vminvmax,限制在此比例支持的域(如果有)。

minpos应该是数据中的最小正值。对数刻度使用它来确定最小值。

set_default_locators_and_formatters () [来源] #

的定位器和格式化程序设置为适合此比例的实例。

matplotlib.scale。SymmetricalLogScale (, * , base = 10 , linthresh = 2 , subs = None , linscale = 1 ) [来源] #

基地:ScaleBase

对称的对数刻度在从原点的正负两个方向上都是对数的。

由于接近零的值趋于无穷大,因此需要在零附近有一个线性范围。参数 linthresh允许用户指定此范围的大小(- linthreshlinthresh)。

参数
基本浮点数,默认值:10

对数的底。

linthresh浮点数,默认值:2

定义范围,在该范围内绘图是线性的。这避免了情节在零附近趋于无穷大。(-x, x)

int的子序列

在每个主要刻度之间放置子刻度的位置。例如,在 log10 刻度中:将在每个主要刻度之间放置 8 个对数间隔的次要刻度。[2, 3, 4, 5, 6, 7, 8, 9]

linscale浮点数,可选

这允许相对于对数范围扩展线性范围。它的值是用于线性范围的每一半的十进制数。例如,当 linscale == 1.0(默认值)时,用于线性范围的正负半部分的空间将等于对数范围中的十进制。(-linthresh, linthresh)

构建一个新的尺度。

笔记

以下说明适用于规模实施者。

出于向后兼容的原因,尺度将Axis 对象作为第一个参数。但是,不应该使用这个参数:单个比例对象应该可以同时被多个 Axises 使用。

属性 基础#
get_transform ( ) [来源] #

返回SymmetricalLogTransform与此比例相关的。

属性 linscale #
属性 linthresh #
名称= '符号日志' #
set_default_locators_and_formatters () [来源] #

的定位器和格式化程序设置为适合此比例的实例。

matplotlib.scale。SymmetricalLogTransform ( base , linthresh , linscale ) [来源] #

基地:Transform

参数
速记名 str

表示转换的“名称”的字符串。str(transform)除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。

has_inverse = True #

如果此变换具有相应的逆变换,则为真。

input_dims = 1 #

此变换的输入维数。必须在子类中被覆盖(使用整数)。

倒置( ) [来源] #

返回对应的逆变换。

它成立。x == self.inverted().transform(self.transform(x))

此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。

is_separable = True #

如果此变换在 x 和 y 维度上是可分离的,则为真。

output_dims = 1 #

此变换的输出维数。必须在子类中被覆盖(使用整数)。

transform_non_affine ( a ) [来源] #

仅应用此转换的非仿射部分。

transform(values)总是等价于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常等价于 transform(values)。在仿射变换中,这始终是空操作。

参数
数组

输入值作为长度input_dims或形状 (N x input_dims) 的 NumPy 数组。

返回
大批

The output values as NumPy array of length output_dims or shape (N x output_dims), depending on the input.

matplotlib.scale.get_scale_names()[source]#

Return the names of the available scales.

matplotlib.scale.register_scale(scale_class)[source]#

Register a new kind of scale.

Parameters:
scale_classsubclass of ScaleBase

The scale to register.

matplotlib.scale.scale_factory(scale, axis, **kwargs)[source]#

Return a scale class by name.

Parameters:
scale {'asinh', 'function', 'functionlog', 'linear', 'log', 'logit', 'symlog'}
matplotlib.axis.Axis