Spec-Zone.ru › Matplotlib

matplotlib.scale

Масштабы определяют распределение значений данных на оси, например логарифмический масштаб.

Отображение реализуется с помощью подклассов Transform.

Встроены следующие масштабы:

Название

Класс

Преобразование

Обратное преобразование

"asinh"

AsinhScale

AsinhTransform

InvertedAsinhTransform

"function"

FuncScale

FuncTransform

FuncTransform

"functionlog"

FuncScaleLog

FuncTransform + LogTransform

InvertedLogTransform + FuncTransform

"linear"

LinearScale

IdentityTransform

IdentityTransform

"log"

LogScale

LogTransform

InvertedLogTransform

"logit"

LogitScale

LogitTransform

LogisticTransform

"symlog"

SymmetricalLogScale

SymmetricalLogTransform

InvertedSymmetricalLogTransform

Обычно пользователь указывает только название масштаба, например при задании масштаба с помощью set_xscale: ax.set_xscale("log").

См. также примеры масштабов в документации.

Пользовательский масштаб можно создать с помощью FuncScale или создав собственный подкласс ScaleBase и соответствующие преобразования (см. Пользовательский масштаб). Сторонние разработчики могут регистрировать свои масштабы по имени с помощью register_scale.

classmatplotlib.scale.ScaleBase(axis)[исходный код]

Базовые классы: object

Базовый класс для всех масштабов.

Масштабы — это разделимые преобразования, работающие с одним измерением.

Подклассы должны переопределять

name

Название масштаба.

get_transform()

Метод, возвращающий Transform, который преобразует координаты данных в координаты масштаба. Это преобразование должно быть обратимым, чтобы, например, координаты положения мыши можно было преобразовать обратно в координаты данных.

set_default_locators_and_formatters()

Метод, задающий локаторы и форматтеры по умолчанию для Axis, использующей этот масштаб.

limit_range_for_scale()

Необязательный метод, который «исправляет» диапазон оси, приводя его к допустимым значениям, например ограничивая оси с логарифмическим масштабом положительными значениями.

Создать новый масштаб.

Примечания

Следующее примечание предназначено для разработчиков масштабов.

Для обеспечения обратной совместимости масштабы принимают объект Axis в качестве первого аргумента. Однако этот аргумент не следует использовать: один объект масштаба должен одновременно применяться несколькими объектами Axis.

get_transform()[исходный код]

Вернуть объект Transform, связанный с этим масштабом.

set_default_locators_and_formatters(axis)[исходный код]

Задать для локаторов и форматтеров axis экземпляры, подходящие для этого масштаба.

limit_range_for_scale(vmin, vmax, minpos)[исходный код]

Вернуть диапазон vmin, vmax, ограниченный областью значений, поддерживаемой этим масштабом (если таковая имеется).

minpos должно быть минимальным положительным значением в данных. Логарифмические масштабы используют его для определения минимального значения.

classmatplotlib.scale.LinearScale(axis)[исходный код]

Базовые классы: ScaleBase

Линейный масштаб по умолчанию.

name='linear'
set_default_locators_and_formatters(axis)[исходный код]

Задать для локаторов и форматтеров axis экземпляры, подходящие для этого масштаба.

get_transform()[исходный код]

Вернуть преобразование для линейного масштабирования, которым является IdentityTransform.

classmatplotlib.scale.FuncTransform(forward, inverse)[исходный код]

Базовые классы: Transform

Простое преобразование, принимающее произвольные функции прямого и обратного преобразования.

Параметры:
forwardcallable

Функция прямого преобразования. У этой функции должна быть обратная функция, а для наилучшего поведения она должна быть монотонной. Она должна иметь сигнатуру:

def forward(values: array-like) -> array-like
inversecallable

Обратная функция для функции прямого преобразования. Сигнатура, как у forward.

input_dims=1

Количество входных измерений этого преобразования. В подклассе необходимо переопределить (целыми числами).

output_dims=1

Количество выходных измерений этого преобразования. В подклассе необходимо переопределить (целыми числами).

transform_non_affine(values)[исходный код]

Применить только неаффинную часть этого преобразования.

transform(values) всегда эквивалентно transform_affine(transform_non_affine(values)).

Для неаффинных преобразований это, как правило, эквивалентно transform(values). Для аффинных преобразований это всегда пустая операция.

Параметры:
valuesarray

Входные значения в виде массива длины input_dims или формы (N, input_dims).

Возвращает:
array

Выходные значения в виде массива длины output_dims или формы (N, output_dims), в зависимости от входных данных.

inverted()[исходный код]

Вернуть соответствующее обратное преобразование.

Выполняется x == self.inverted().transform(self.transform(x)).

Возвращаемое этим методом значение следует считать временным. Обновление self не приводит к соответствующему обновлению его обратной копии.

has_inverse=True

True, если для этого преобразования существует соответствующее обратное преобразование.

is_separable=True

True, если это преобразование разделимо по измерениям x и y.

classmatplotlib.scale.FuncScale(axis, functions)[исходный код]

Базовые классы: ScaleBase

Предоставляет произвольный масштаб оси с функцией, заданной пользователем.

Параметры:
axisAxis

Ось для масштаба.

functions(callable, callable)

Пара функций: прямого и обратного преобразования масштаба. Функция прямого преобразования должна быть монотонной.

Обе функции должны иметь сигнатуру:

def forward(values: array-like) -> array-like
name='function'
get_transform()[исходный код]

Вернуть FuncTransform, связанное с этим масштабом.

set_default_locators_and_formatters(axis)[исходный код]

Установить для axis локаторы и форматтеры, подходящие для этого масштаба.

classmatplotlib.scale.LogTransform(base, nonpositive='clip')[исходный код]

Базовые классы: Transform

Параметры:
shorthand_namestr

Строка, задающая «имя» преобразования. Это имя не имеет иного значения, кроме повышения удобочитаемости str(transform) при DEBUG=True.

input_dims=1

Количество входных измерений этого преобразования. В подклассе необходимо переопределить (целыми числами).

output_dims=1

Количество выходных измерений этого преобразования. В подклассе необходимо переопределить (целыми числами).

transform_non_affine(values)[исходный код]

Применить только неаффинную часть этого преобразования.

transform(values) всегда эквивалентно transform_affine(transform_non_affine(values)).

Для неаффинных преобразований это, как правило, эквивалентно transform(values). Для аффинных преобразований это всегда пустая операция.

Параметры:
valuesarray

Входные значения в виде массива длины input_dims или формы (N, input_dims).

Возвращает:
array

Выходные значения в виде массива длины output_dims или формы (N, output_dims), в зависимости от входных данных.

inverted()[исходный код]

Вернуть соответствующее обратное преобразование.

Выполняется x == self.inverted().transform(self.transform(x)).

Возвращаемое этим методом значение следует считать временным. Обновление self не приводит к соответствующему обновлению его обратной копии.

has_inverse=True

True, если для этого преобразования существует соответствующее обратное преобразование.

is_separable=True

True, если это преобразование разделимо по измерениям x и y.

classmatplotlib.scale.InvertedLogTransform(base)[исходный код]

Базовые классы: Transform

Параметры:
shorthand_namestr

Строка, представляющая «имя» преобразования. Это имя не имеет иного значения, кроме повышения читаемости str(transform) при DEBUG=True.

input_dims=1

Количество входных измерений этого преобразования. В подклассе необходимо переопределить (целыми числами).

output_dims=1

Количество выходных измерений этого преобразования. В подклассе необходимо переопределить (целыми числами).

transform_non_affine(values)[исходный код]

Применить только неаффинную часть этого преобразования.

transform(values) всегда эквивалентно transform_affine(transform_non_affine(values)).

Для неаффинных преобразований это обычно эквивалентно transform(values). Для аффинных преобразований это всегда пустая операция.

Параметры:
valuesмассив

Входные значения в виде массива длины input_dims или формы (N, input_dims).

Возвращает:
массив

Выходные значения в виде массива длины output_dims или формы (N, output_dims) в зависимости от входных данных.

inverted()[исходный код]

Вернуть соответствующее обратное преобразование.

Выполняется x == self.inverted().transform(self.transform(x)).

Возвращаемое этим методом значение следует считать временным. Обновление self не приводит к соответствующему обновлению его обратной копии.

has_inverse=True

True, если у этого преобразования есть соответствующее обратное преобразование.

is_separable=True

True, если это преобразование разделимо по измерениям x и y.

classmatplotlib.scale.LogScale(axis, *, base=10, subs=None, nonpositive='clip')[исходный код]

Базовые классы: ScaleBase

Стандартная логарифмическая шкала. Предусмотрено отображение только положительных значений.

Параметры:
axisAxis

Ось для шкалы.

baseчисло с плавающей точкой, по умолчанию: 10

Основание логарифма.

nonpositive{'clip', 'mask'}, по умолчанию: 'clip'

Определяет поведение для неположительных значений. Их можно либо замаскировать как недопустимые, либо ограничить очень малым положительным числом.

subsпоследовательность целых чисел, по умолчанию: None

Где размещать промежуточные деления между основными делениями. Например, в шкале log10 значение [2, 3, 4, 5, 6, 7, 8, 9] разместит 8 равномерно распределённых по логарифмической шкале малых делений между каждым основным делением.

name='log'
свойствоbase
set_default_locators_and_formatters(axis)[исходный код]

Установить для axis локаторы и форматтеры, подходящие для этой шкалы.

get_transform()[исходный код]

Вернуть LogTransform, связанное с этой шкалой.

limit_range_for_scale(vmin, vmax, minpos)[исходный код]

Ограничить область положительными значениями.

classmatplotlib.scale.FuncScaleLog(axis, functions, base=10)[исходный код]

Базовые классы: LogScale

Предоставляет произвольную шкалу с заданной пользователем функцией для оси, а затем применяет к ней логарифмическую шкалу.

Параметры:
axisAxis

Ось для шкалы.

functions(вызываемый объект, вызываемый объект)

Пара функций прямого и обратного преобразования для шкалы. Функция прямого преобразования должна быть монотонной.

Обе функции должны иметь следующую сигнатуру:

def forward(values: array-like) -> array-like
baseчисло с плавающей точкой, по умолчанию: 10

Основание логарифма шкалы.

name='functionlog'
свойствоbase
get_transform()[исходный код]

Вернуть Transform, связанное с этой шкалой.

classmatplotlib.scale.SymmetricalLogTransform(base, linthresh, linscale)[source]

Базовые классы: Transform

Параметры:
shorthand_namestr

Строка, представляющая «имя» преобразования. Имя не имеет никакого значения, кроме повышения читаемости str(transform) при DEBUG=True.

input_dims=1

Количество входных измерений этого преобразования. В подклассе необходимо переопределить (целыми числами).

output_dims=1

Количество выходных измерений этого преобразования. В подклассе необходимо переопределить (целыми числами).

transform_non_affine(values)[source]

Применить только неаффинную часть этого преобразования.

transform(values) всегда эквивалентно transform_affine(transform_non_affine(values)).

Для неаффинных преобразований это обычно эквивалентно transform(values). Для аффинных преобразований это всегда пустая операция.

Параметры:
valuesarray

Входные значения в виде массива длины 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

True, если это преобразование разделимо по измерениям x и y.

classmatplotlib.scale.InvertedSymmetricalLogTransform(base, linthresh, linscale)[source]

Базовые классы: Transform

Параметры:
shorthand_namestr

Строка, представляющая «имя» преобразования. Имя не имеет никакого значения, кроме повышения читаемости str(transform) при DEBUG=True.

input_dims=1

Количество входных измерений этого преобразования. В подклассе необходимо переопределить (целыми числами).

output_dims=1

Количество выходных измерений этого преобразования. В подклассе необходимо переопределить (целыми числами).

transform_non_affine(values)[source]

Применить только неаффинную часть этого преобразования.

transform(values) всегда эквивалентно transform_affine(transform_non_affine(values)).

Для неаффинных преобразований это обычно эквивалентно transform(values). Для аффинных преобразований это всегда пустая операция.

Параметры:
valuesarray

Входные значения в виде массива длины 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

True, если это преобразование разделимо по измерениям x и y.

classmatplotlib.scale.SymmetricalLogScale(axis, *, base=10, linthresh=2, subs=None, linscale=1)[исходный код]

Основан на: ScaleBase

Симметричная логарифмическая шкала является логарифмической как в положительном, так и в отрицательном направлениях от начала координат.

Поскольку значения, близкие к нулю, стремятся к бесконечности, необходимо выделить линейный диапазон вокруг нуля. Параметр linthresh позволяет задать размер этого диапазона (-linthresh, linthresh).

Подробное описание см. в разделе Симметричная логарифмическая шкала.

Параметры:
basefloat, default: 10

Основание логарифма.

linthreshfloat, default: 2

Задает диапазон (-x, x), в пределах которого график является линейным. Это предотвращает стремление графика к бесконечности вблизи нуля.

subssequence of int

Определяет положение промежуточных делений между основными делениями. Например, в логарифмической шкале с основанием 10: [2, 3, 4, 5, 6, 7, 8, 9] разместит 8 логарифмически равноотстоящих малых делений между каждым основным делением.

linscalefloat, optional

Этот параметр позволяет растянуть линейный диапазон (-linthresh, linthresh) относительно логарифмического диапазона. Его значение задает количество порядков величины для каждой половины линейного диапазона. Например, если linscale == 1.0 (значение по умолчанию), пространство, отведенное для положительной и отрицательной половин линейного диапазона, будет равно одному порядку величины в логарифмическом диапазоне.

Создает новую шкалу.

Примечания

Следующее примечание предназначено для разработчиков шкал.

Для обеспечения обратной совместимости шкалы принимают объект Axis в качестве первого аргумента. Однако этот аргумент не следует использовать: один объект шкалы должен быть пригоден для одновременного использования несколькими объектами Axis.

name='symlog'
propertybase
propertylinthresh
propertylinscale
set_default_locators_and_formatters(axis)[исходный код]

Устанавливает для axis локаторы и форматировщики, подходящие для этой шкалы.

get_transform()[исходный код]

Возвращает преобразование SymmetricalLogTransform, связанное с этой шкалой.

classmatplotlib.scale.AsinhTransform(linear_width)[исходный код]

Основан на: Transform

Преобразование обратным гиперболическим синусом, используемое в AsinhScale

Параметры:
shorthand_namestr

Строка, представляющая «имя» преобразования. Имя не имеет иного значения, кроме повышения читаемости str(transform) при DEBUG=True.

input_dims=1

Количество входных измерений этого преобразования. В подклассе это значение необходимо переопределить (целым числом).

output_dims=1

Количество выходных измерений этого преобразования. В подклассе это значение необходимо переопределить (целым числом).

transform_non_affine(values)[исходный код]

Применяет только неаффинную часть этого преобразования.

transform(values) всегда эквивалентно transform_affine(transform_non_affine(values)).

Для неаффинных преобразований это обычно эквивалентно transform(values). Для аффинных преобразований это всегда пустая операция.

Параметры:
valuesarray

Входные значения в виде массива длины input_dims или формы (N, input_dims).

Возвращает:
array

Выходные значения в виде массива длины output_dims или формы (N, output_dims), в зависимости от входных данных.

inverted()[исходный код]

Возвращает соответствующее обратное преобразование.

Выполняется x == self.inverted().transform(self.transform(x)).

Возвращаемое этим методом значение следует считать временным. Обновление self не приводит к соответствующему обновлению его обратной копии.

has_inverse=True

Истина, если для этого преобразования существует соответствующее обратное преобразование.

is_separable=True

Истина, если это преобразование разделимо по измерениям x и y.

classmatplotlib.scale.InvertedAsinhTransform(linear_width)[исходный код]

Базовые классы: Transform

Гиперболическое синус-преобразование, используемое в AsinhScale

Параметры:
shorthand_namestr

Строка, представляющая «имя» преобразования. Имя не имеет никакого значения, кроме повышения читаемости str(transform) при DEBUG=True.

input_dims=1

Количество входных измерений этого преобразования. В подклассе значение необходимо переопределить (целыми числами).

output_dims=1

Количество выходных измерений этого преобразования. В подклассе значение необходимо переопределить (целыми числами).

transform_non_affine(values)[исходный код]

Применяет только неаффинную часть этого преобразования.

transform(values) всегда эквивалентно transform_affine(transform_non_affine(values)).

Для неаффинных преобразований это, как правило, эквивалентно transform(values). Для аффинных преобразований операция всегда ничего не делает.

Параметры:
valuesarray

Входные значения в виде массива длины input_dims или формы (N, input_dims).

Возвращает:
array

Выходные значения в виде массива длины output_dims или формы (N, output_dims) в зависимости от входных данных.

inverted()[исходный код]

Возвращает соответствующее обратное преобразование.

Выполняется условие x == self.inverted().transform(self.transform(x)).

Возвращаемое этим методом значение следует считать временным. Изменение self не приводит к соответствующему изменению его обратной копии.

has_inverse=True

True, если для этого преобразования существует соответствующее обратное преобразование.

is_separable=True

True, если это преобразование разделимо по измерениям x и y.

classmatplotlib.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\)), определяющий размер квазилинейной области и значения координат, за пределами которых преобразование становится асимптотически логарифмическим.

baseint, по умолчанию: 10

Основание системы счисления, используемое для округления положений делений на логарифмической шкале. Если оно меньше единицы, округление выполняется до ближайшего целого кратного степеней десяти.

subsпоследовательность int

Кратные основания системы счисления, используемые для малых делений. Если задано значение 'auto', будут использоваться встроенные значения по умолчанию, например (2, 5) для base=10.

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)}
propertylinear_width
get_transform()[исходный код]

Возвращает объект Transform, связанный с этой шкалой.

set_default_locators_and_formatters(axis)[исходный код]

Устанавливает для axis экземпляры локаторов и форматировщиков, подходящие для этой шкалы.

classmatplotlib.scale.LogitTransform(nonpositive='mask')[исходный код]

Базовые классы: Transform

Параметры:
shorthand_namestr

Строка, представляющая «имя» преобразования. Имя не имеет никакого значения, кроме повышения читаемости str(transform) при DEBUG=True.

input_dims=1

Количество входных измерений этого преобразования. В подклассе значение необходимо переопределить (целыми числами).

output_dims=1

Количество выходных измерений этого преобразования. В подклассе значение необходимо переопределить (целыми числами).

transform_non_affine(values)[исходный код]

Логит-преобразование (с основанием 10), с маскированием или ограничением значений

inverted()[исходный код]

Возвращает соответствующее обратное преобразование.

Выполняется условие x == self.inverted().transform(self.transform(x)).

Возвращаемое этим методом значение следует считать временным. Изменение self не приводит к соответствующему изменению его обратной копии.

has_inverse=True

True, если для этого преобразования существует соответствующее обратное преобразование.

is_separable=True

True, если это преобразование разделимо по измерениям x и y.

classmatplotlib.scale.LogisticTransform(nonpositive='mask')[исходный код]

Базовые классы: Transform

Параметры:
shorthand_namestr

Строка, представляющая «имя» преобразования. Это имя не имеет значения, кроме повышения удобочитаемости str(transform) при DEBUG=True.

input_dims=1

Количество входных измерений этого преобразования. В подклассе значение необходимо переопределить (целыми числами).

output_dims=1

Количество выходных измерений этого преобразования. В подклассе значение необходимо переопределить (целыми числами).

transform_non_affine(values)[исходный код]

Логистическое преобразование (основание 10)

inverted()[исходный код]

Возвращает соответствующее обратное преобразование.

Выполняется x == self.inverted().transform(self.transform(x)).

Возвращаемое этим методом значение следует считать временным. Изменение self не приводит к соответствующему изменению его обратной копии.

has_inverse=True

True, если для этого преобразования существует соответствующее обратное преобразование.

is_separable=True

True, если это преобразование разделимо по измерениям x и y.

classmatplotlib.scale.LogitScale(axis, nonpositive='mask', *, one_half='\\frac{1}{2}', use_overline=False)[исходный код]

Базовые классы: ScaleBase

Логит-шкала для данных между нулём и единицей, не включая границы.

Эта шкала похожа на логарифмическую вблизи нуля и единицы и почти линейна около 0.5. Она отображает интервал ]0, 1[ на ]-infty, +infty[.

Параметры:
axisAxis

В настоящее время не используется.

nonpositive{'mask', 'clip'}

Определяет поведение для значений за пределами открытого интервала ]0, 1[. Их можно либо замаскировать как недопустимые, либо ограничить числом, очень близким к 0 или 1.

use_overlinebool, default: False

Указывает, следует ли использовать обозначение через функцию выживания (overline{x}) вместо стандартного обозначения (1-x) для вероятностей, близких к единице.

one_halfstr, default: r"frac{1}{2}"

Строка, используемая форматировщиком делений для обозначения 1/2.

name='logit'
get_transform()[исходный код]

Возвращает LogitTransform, связанное с этой шкалой.

set_default_locators_and_formatters(axis)[исходный код]

Устанавливает для axis локаторы и форматтеры, подходящие для этой шкалы.

limit_range_for_scale(vmin, vmax, minpos)[исходный код]

Ограничивает область значениями между 0 и 1, не включая границы.

matplotlib.scale.get_scale_names()[исходный код]

Возвращает названия доступных шкал.

matplotlib.scale.scale_factory(scale, axis, **kwargs)[исходный код]

Возвращает класс шкалы по имени.

Параметры:
scale{'asinh', 'function', 'functionlog', 'linear', 'log', 'logit', 'symlog'}
axisAxis
matplotlib.scale.register_scale(scale_class)[исходный код]

Регистрирует новый тип шкалы.

Параметры:
scale_classподкласс ScaleBase

Шкала для регистрации.

© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/scale_api.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API