matplotlib.scale
Масштабирования определяют распределение значений данных на оси, например, логарифмический масштаб. Они определяются как подклассы ScaleBase.
См. также axes.Axes.set_xscale и примеры масштабирования в документации.
См. Пользовательский масштаб для полного примера определения пользовательского масштаба.
Matplotlib также поддерживает неразделимые преобразования, которые действуют на обе Axis одновременно. Они известны как проекции и определены в matplotlib.projections.
- classmatplotlib.scale.AsinhScale(axis, *, linear_width=1.0, base=10, subs='auto', **kwargs)[source]
-
Bases:
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.
- 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()[source]
-
Возвращает объект
Transform, связанный с этим масштабом.
- propertylinear_width
- name='asinh'
- set_default_locators_and_formatters(axis)[source]
-
Устанавливает локаторы и форматеры axis в экземпляры, подходящие для этого масштаба.
- classmatplotlib.scale.AsinhTransform(linear_width)[source]
-
Bases:
TransformПреобразование обратной гиперболической синусоиды, используемое
AsinhScale- Параметры:
-
- shorthand_namestr
-
Строка, представляющая «имя» преобразования. Имя не имеет значения, кроме как для улучшения удобочитаемости
str(transform)при DEBUG=True.
- has_inverse=True
-
True, если для этого преобразования существует соответствующее обратное преобразование.
- input_dims=1
-
Число входных измерений этого преобразования. Должно быть перезаписано (целыми числами) в подклассе.
- inverted()[source]
-
Возвращает соответствующее обратное преобразование.
Он выполняет
x == self.inverted().transform(self.transform(x)).Результат работы этого метода следует рассматривать как временный. Обновление self не приводит к соответствующему обновлению его инвертированной копии.
- is_separable=True
-
True, если это преобразование разделимо по x- и y- измерениям.
- output_dims=1
-
Число выходных измерений этого преобразования. Должно быть перезаписано (целыми числами) в подклассе.
- transform_non_affine(a)[source]
-
Применяет только неаффинную часть этого преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это обычно эквивалентно
transform(values). В аффинных преобразованиях это всегда бездействующая операция.- Параметры:
-
- valuesмассив
-
Входные значения как NumPy массив длины
input_dimsили формы (N xinput_dims).
- Возвращает:
-
- массив
-
Выходные значения как NumPy массив длины
output_dimsили формы (N xoutput_dims), в зависимости от входных данных.
- классmatplotlib.scale.FuncScale(axis, functions)[source]
-
Базы:
ScaleBaseОбеспечивает произвольную шкалу с функциями, заданными пользователем, для оси.
- Параметры:
-
-
axis
Axis -
Ось для шкалы.
- functions(callable, callable)
-
Двухэлементный кортеж из функций прямого и обратного преобразования шкалы. Функция прямого преобразования должна быть монотонной.
Обе функции должны иметь следующий синтаксис:
def forward(values: array-like) -> array-like
-
axis
- get_transform()[source]
-
Возвращает
FuncTransform, связанную с этой шкалой.
- name='function'
- set_default_locators_and_formatters(axis)[source]
-
Устанавливает локейторы и форматировщики axis на экземпляры, подходящие для этой шкалы.
- классmatplotlib.scale.FuncScaleLog(axis, functions, base=10)[source]
-
Базы:
LogScaleОбеспечивает произвольную шкалу с функциями, заданными пользователем, для оси, а затем размещает её на логарифмической оси.
- Параметры:
-
-
axis
Axis -
Ось для шкалы.
- functions(callable, callable)
-
Двухэлементный кортеж из функций прямого и обратного преобразования шкалы. Функция прямого преобразования должна быть монотонной.
Обе функции должны иметь следующий синтаксис:
def forward(values: array-like) -> array-like
- basefloat, по умолчанию: 10
-
Логарифмическая основа шкалы.
-
axis
- свойствоbase
- get_transform()[source]
-
Возвращает
Transform, связанную с этой шкалой.
- name='functionlog'
- классmatplotlib.scale.FuncTransform(forward, inverse)[source]
-
Базы:
TransformПростая трансформация, которая принимает произвольную функцию для прямого и обратного преобразования.
- Параметры:
-
- forwardcallable
-
Функция прямого преобразования. Эта функция должна иметь обратную функцию и, для наилучшего поведения, быть монотонной. Она должна иметь следующий синтаксис:
def forward(values: array-like) -> array-like
- inversecallable
-
Обратная функция функции прямого преобразования. Синтаксис как
forward.
- has_inverse=True
-
True, если у этой трансформации есть соответствующее обратное преобразование.
- input_dims=1
-
Количество входных измерений этой трансформации. Должно быть переопределено (целыми числами) в подклассе.
- inverted()[source]
-
Возвращает соответствующее обратное преобразование.
Это
x == self.inverted().transform(self.transform(x)).Результат этого метода следует рассматривать как временный. Обновление self не вызывает соответствующего обновления его обратной копии.
- is_separable=True
-
True, если эта трансформация разделима по осям x и y.
- output_dims=1
-
Количество выходных измерений этой трансформации. Должно быть переопределено (целыми числами) в подклассе.
- transform_non_affine(values)[source]
-
Применяет только неаффинные части этой трансформации.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это, как правило, эквивалентно
transform(values). В аффинных преобразованиях это всегда является пустым действием.- Параметры:
-
- valuesмассив
-
Входные значения как массив NumPy длины
input_dimsили формы (N xinput_dims).
- Возвращает:
-
- массив
-
Выходные значения как массив NumPy длины
output_dimsили формы (N xoutput_dims), в зависимости от входных данных.
- classmatplotlib.scale.InvertedAsinhTransform(linear_width)[source]
-
Bases:
TransformГиперболическая синусная трансформация, используемая
AsinhScale- Параметры:
-
- shorthand_namestr
-
Строка, представляющая «имя» преобразования. Имя не имеет значения, кроме повышения удобочитаемости
str(transform)при DEBUG=True.
- has_inverse=True
-
True, если для данного преобразования существует обратное преобразование.
- input_dims=1
-
Число входных измерений данного преобразования. Должно быть переопределено (целыми числами) в подклассе.
- inverted()[source]
-
Возвращает соответствующее обратное преобразование.
Содержит
x == self.inverted().transform(self.transform(x)).Результат этого метода следует рассматривать как временный. Обновление self не вызывает соответствующего обновления его инвертированной копии.
- is_separable=True
-
True, если данное преобразование разделимо по x- и y- измерениям.
- output_dims=1
-
Число выходных измерений данного преобразования. Должно быть переопределено (целыми числами) в подклассе.
- transform_non_affine(a)[source]
-
Применить только неаффинную часть данного преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это обычно эквивалентно
transform(values). В аффинных преобразованиях это всегда бесполезно.- Параметры:
-
- значениямассив
-
Входные значения в виде массива NumPy длиной
input_dimsили формы (N xinput_dims).
- Возвращает:
-
- массив
-
Выходные значения в виде массива NumPy длиной
output_dimsили формы (N xoutput_dims), в зависимости от входных данных.
- classmatplotlib.scale.InvertedLogTransform(base)[source]
-
Bases:
Transform- Параметры:
-
- shorthand_namestr
-
Строка, представляющая «имя» преобразования. Имя не имеет значения, кроме повышения удобочитаемости
str(transform)при DEBUG=True.
- has_inverse=True
-
True, если для данного преобразования существует обратное преобразование.
- input_dims=1
-
Число входных измерений данного преобразования. Должно быть переопределено (целыми числами) в подклассе.
- inverted()[source]
-
Возвращает соответствующее обратное преобразование.
Содержит
x == self.inverted().transform(self.transform(x)).Результат этого метода следует рассматривать как временный. Обновление self не вызывает соответствующего обновления его инвертированной копии.
- is_separable=True
-
True, если данное преобразование разделимо по x- и y- измерениям.
- output_dims=1
-
Число выходных измерений данного преобразования. Должно быть переопределено (целыми числами) в подклассе.
- transform_non_affine(a)[source]
-
Применить только неаффинную часть данного преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это обычно эквивалентно
transform(values). В аффинных преобразованиях это всегда бесполезно.- Параметры:
-
- значениямассив
-
Входные значения в виде массива NumPy длиной
input_dimsили формы (N xinput_dims).
- Возвращает:
-
- массив
-
Выходные значения в виде массива NumPy длиной
output_dimsили формы (N xoutput_dims), в зависимости от входных данных.
- classmatplotlib.scale.InvertedSymmetricalLogTransform(base, linthresh, linscale)[source]
-
Bases:
Transform- Parameters:
-
- shorthand_namestr
-
A string representing the "name" of the transform. The name carries no significance other than to improve the readability of
str(transform)when DEBUG=True.
- has_inverse=True
-
True if this transform has a corresponding inverse transform.
- input_dims=1
-
The number of input dimensions of this transform. Must be overridden (with integers) in the subclass.
- inverted()[source]
-
Return the corresponding inverse transformation.
It holds
x == self.inverted().transform(self.transform(x)).The return value of this method should be treated as temporary. An update to self does not cause a corresponding update to its inverted copy.
- is_separable=True
-
True if this transform is separable in the x- and y- dimensions.
- output_dims=1
-
The number of output dimensions of this transform. Must be overridden (with integers) in the subclass.
- transform_non_affine(a)[source]
-
Apply only the non-affine part of this transformation.
transform(values)is always equivalent totransform_affine(transform_non_affine(values)).In non-affine transformations, this is generally equivalent to
transform(values). In affine transformations, this is always a no-op.- Parameters:
-
- valuesarray
-
The input values as NumPy array of length
input_dimsor shape (N xinput_dims).
- Returns:
-
- array
-
The output values as NumPy array of length
output_dimsor shape (N xoutput_dims), depending on the input.
- classmatplotlib.scale.LinearScale(axis)[source]
-
Bases:
ScaleBaseThe default linear scale.
- get_transform()[source]
-
Return the transform for linear scaling, which is just the
IdentityTransform.
- name='linear'
- set_default_locators_and_formatters(axis)[source]
-
Set the locators and formatters of axis to instances suitable for this scale.
- классmatplotlib.scale.LogScale(axis, *, base=10, subs=None, nonpositive='clip')[source]
-
Базовый логарифмический масштаб. Учитываются только положительные значения.
- Параметры:
-
-
axis
Axis -
Ось для масштаба.
- basefloat, по умолчанию: 10
-
Основание логарифма.
- nonpositive{'clip', 'mask'}, по умолчанию: 'clip'
-
Определяет поведение для неположительных значений. Они могут быть либо замаскированы как недопустимые, либо ограничены очень малым положительным числом.
- subsпоследовательность целых чисел, по умолчанию: None
-
Где разместить дополнительные отметки между каждой основной отметкой. Например, в логарифмическом масштабе base-10,
[2, 3, 4, 5, 6, 7, 8, 9]разместит 8 логарифмически распределенных дополнительных отметок между каждой основной отметкой.
-
axis
- свойствоbase
- get_transform()[source]
-
Возвращает
LogTransform, связанную с этим масштабом.
- limit_range_for_scale(vmin, vmax, minpos)[source]
-
Ограничить область положительными значениями.
- name='log'
- set_default_locators_and_formatters(axis)[source]
-
Устанавливает локаторы и форматеры axis на экземпляры, подходящие для этого масштаба.
- классmatplotlib.scale.LogTransform(base, nonpositive='clip')[source]
-
Bases:
Transform- Параметры:
-
- shorthand_namestr
-
Строка, представляющая "имя" преобразования. Имя не имеет значения, кроме повышения удобочитаемости
str(transform)при DEBUG=True.
- has_inverse=True
-
True, если у этого преобразования есть соответствующее обратное преобразование.
- input_dims=1
-
Количество входных измерений этого преобразования. Должно быть переопределено (целыми числами) в подклассе.
- inverted()[source]
-
Возвращает соответствующее обратное преобразование.
Это
x == self.inverted().transform(self.transform(x)).Результат этого метода должен рассматриваться как временный. Обновление self не вызывает соответствующего обновления его обратного копии.
- is_separable=True
-
True, если это преобразование разделимо по измерениям x и y.
- output_dims=1
-
Количество выходных измерений этого преобразования. Должно быть переопределено (целыми числами) в подклассе.
- transform_non_affine(a)[source]
-
Применить только неаффинную часть этого преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).При неаффинных преобразованиях это обычно эквивалентно
transform(values). При аффинных преобразованиях это всегда недействие.- Параметры:
-
- valuesмассив
-
Входные значения как NumPy-массив длиной
input_dimsили формы (N xinput_dims).
- Возвращает:
-
- массив
-
Выходные значения как NumPy-массив длиной
output_dimsили формы (N xoutput_dims), в зависимости от входа.
- classmatplotlib.scale.LogisticTransform(nonpositive='mask')[source]
-
Bases:
Transform- Parameters:
-
- shorthand_namestr
-
Строка, представляющая "имя" преобразования. Имя не имеет значения, кроме улучшения читаемости
str(transform)при DEBUG=True.
- has_inverse=True
-
True, если для этого преобразования существует обратное преобразование.
- input_dims=1
-
Число входных измерений этого преобразования. Должно быть переопределено (целыми числами) в подклассе.
- inverted()[source]
-
Возвращает соответствующее обратное преобразование.
Он содержит
x == self.inverted().transform(self.transform(x)).Значение, возвращаемое этим методом, следует рассматривать как временное. Обновление self не вызывает соответствующего обновления его обратного копии.
- is_separable=True
-
True, если это преобразование является разделяемым по осям x и y.
- output_dims=1
-
Число выходных измерений этого преобразования. Должно быть переопределено (целыми числами) в подклассе.
- transform_non_affine(a)[source]
-
логарифмическое преобразование (основание 10)
- classmatplotlib.scale.LogitScale(axis, nonpositive='mask', *, one_half='\\frac{1}{2}', use_overline=False)[source]
-
Bases:
ScaleBaseЛогит-шкала для данных между нулём и единицей, но не включая их.
Эта шкала подобна логарифмической шкале вблизи нуля и единицы и почти линейна около 0,5. Она отображает интервал ]0, 1[ на ]-infty, +infty[.
- Parameters:
-
-
axis
Axis -
В настоящее время не используется.
- nonpositive{'mask', 'clip'}
-
Определяет поведение для значений за пределами открытого интервала ]0, 1[. Они могут быть замаскированы как недопустимые или обрезаны до числа, очень близкого к 0 или 1.
- use_overlinebool, default: False
-
Указывает на использование обозначения выживаемости (overline{x}) вместо стандартного обозначения (1-x) для вероятности, близкой к единице.
- one_halfstr, default: r"frac{1}{2}"
-
Строка, используемая для форматирования меток для представления 1/2.
-
axis
- get_transform()[source]
-
Возвращает связанное с этой шкалой
LogitTransform.
- limit_range_for_scale(vmin, vmax, minpos)[source]
-
Ограничить область значениями между 0 и 1 (не включительно).
- name='logit'
- set_default_locators_and_formatters(axis)[source]
-
Установить локатороы и форматеры axis в экземпляры, подходящие для этой шкалы.
- classmatplotlib.scale.LogitTransform(nonpositive='mask')[source]
-
Bases:
Transform- Parameters:
-
- shorthand_namestr
-
Строка, представляющая "имя" преобразования. Имя не имеет значения, кроме улучшения читаемости
str(transform)при DEBUG=True.
- has_inverse=True
-
True, если для этого преобразования существует обратное преобразование.
- input_dims=1
-
Число входных измерений этого преобразования. Должно быть переопределено (целыми числами) в подклассе.
- inverted()[source]
-
Возвращает соответствующее обратное преобразование.
Он содержит
x == self.inverted().transform(self.transform(x)).Значение, возвращаемое этим методом, следует рассматривать как временное. Обновление self не вызывает соответствующего обновления его обратного копии.
- is_separable=True
-
True, если это преобразование является разделяемым по осям x и y.
- output_dims=1
-
Число выходных измерений этого преобразования. Должно быть переопределено (целыми числами) в подклассе.
- transform_non_affine(a)[source]
-
logit-преобразование (основание 10), замаскированное или обрезанное
- classmatplotlib.scale.ScaleBase(axis)[source]
-
Bases:
objectБазовый класс для всех шкал.
Шкалы — это разделимые преобразования, работающие с одной размерностью.
Подклассы должны переопределить
name-
Имя шкалы.
get_transform()-
Метод, возвращающий объект
Transform, который преобразует координаты данных в отмасштабированные координаты. Это преобразование должно быть обратимым, чтобы, например, координаты курсора можно было преобразовать обратно в координаты данных. set_default_locators_and_formatters()-
Метод, устанавливающий значения по умолчанию для меток и форматеров для
Axis, использующего эту шкалу. limit_range_for_scale()-
Необязательный метод, который «исправляет» диапазон оси до приемлемых значений, например, ограничивая логарифмические оси положительными значениями.
Создаёт новую шкалу.
Примечания
Следующее примечание предназначено для разработчиков шкал.
По соображениям обратной совместимости шкалы принимают объект
Axisв качестве первого аргумента. Однако этот аргумент не должен использоваться: один объект шкалы должен быть пригоден для одновременного использования несколькимиAxis.- get_transform()[source]
-
Возвращает объект
Transform, связанный с этой шкалой.
- limit_range_for_scale(vmin, vmax, minpos)[source]
-
Возвращает диапазон vmin, vmax, ограниченный областью, поддерживаемой этой шкалой (если таковая имеется).
minpos — минимальное положительное значение в данных. Используется логарифмическими шкалами для определения минимального значения.
- set_default_locators_and_formatters(axis)[source]
-
Устанавливает значения по умолчанию для меток и форматеров axis, подходящие для данной шкалы.
- classmatplotlib.scale.SymmetricalLogScale(axis, *, base=10, linthresh=2, subs=None, linscale=1)[source]
-
Bases:
ScaleBaseСимметричная логарифмическая шкала — это логарифмическая шкала как в положительном, так и в отрицательном направлениях от начала отсчёта.
Поскольку значения, близкие к нулю, стремятся к бесконечности, необходимо иметь диапазон вокруг нуля, который является линейным. Параметр linthresh позволяет пользователю указать размер этого диапазона (-linthresh, linthresh).
- Parameters:
-
- basefloat, default: 10
-
Основание логарифма.
- linthreshfloat, default: 2
-
Определяет диапазон
(-x, x), в котором график является линейным. Это позволяет избежать стремления графика к бесконечности вокруг нуля. - subssequence of int
-
Где разместить подделения между каждой основной меткой. Например, в логарифмической шкале base 10:
[2, 3, 4, 5, 6, 7, 8, 9]разместит 8 логарифмически распределённых подделений между каждой основной меткой. - linscalefloat, optional
-
Это позволяет растянуть линейный диапазон
(-linthresh, linthresh)относительно логарифмического диапазона. Его значение — количество десятичных разрядов, используемых для каждой половины линейного диапазона. Например, при linscale == 1.0 (по умолчанию) пространство, используемое для положительной и отрицательной половин линейного диапазона, будет равно одному десятичному разряду в логарифмическом диапазоне.
Создаёт новую шкалу.
Примечания
Следующее примечание предназначено для разработчиков шкал.
По соображениям обратной совместимости шкалы принимают объект
Axisв качестве первого аргумента. Однако этот аргумент не должен использоваться: один объект шкалы должен быть пригоден для одновременного использования несколькимиAxis.- propertybase
- get_transform()[source]
-
Возвращает
SymmetricalLogTransform, связанный с этой шкалой.
- propertylinscale
- propertylinthresh
- name='symlog'
- set_default_locators_and_formatters(axis)[source]
-
Устанавливает значения по умолчанию для меток и форматеров axis, подходящие для данной шкалы.
- classmatplotlib.scale.SymmetricalLogTransform(base, linthresh, linscale)[source]
-
Bases:
Transform- Parameters:
-
- shorthand_namestr
-
A string representing the "name" of the transform. The name carries no significance other than to improve the readability of
str(transform)when DEBUG=True.
- has_inverse=True
-
True, если у этого преобразования есть соответствующее обратное преобразование.
- input_dims=1
-
Число входных измерений этого преобразования. Должно быть переопределено (целыми числами) в подклассе.
- inverted()[source]
-
Возвращает соответствующее обратное преобразование.
Это соответствует
x == self.inverted().transform(self.transform(x)).Возвращаемое значение этого метода следует рассматривать как временное. Обновление self не приводит к соответствующему обновлению его инвертированной копии.
- is_separable=True
-
True, если это преобразование разделимо по x- и y-осям.
- output_dims=1
-
Число выходных измерений этого преобразования. Должно быть переопределено (целыми числами) в подклассе.
- transform_non_affine(a)[source]
-
Применяет только неаффинную часть этого преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это, как правило, эквивалентно
transform(values). В аффинных преобразованиях это всегда действие-бездействие.- Parameters:
-
- valuesarray
-
Входные значения в виде массива NumPy длиной
input_dimsили формы (N xinput_dims).
- Returns:
-
- array
-
Выходные значения в виде массива NumPy длиной
output_dimsили формы (N xoutput_dims), в зависимости от входа.
- matplotlib.scale.get_scale_names()[source]
-
Возвращает имена доступных шкал.
- matplotlib.scale.register_scale(scale_class)[source]
-
Регистрирует новый тип шкалы.
- Parameters:
-
-
scale_classподкласс
ScaleBase -
Регистрируемая шкала.
-
scale_classподкласс
- matplotlib.scale.scale_factory(scale, axis, **kwargs)[source]
-
Возвращает класс шкалы по имени.
- Parameters:
-
- scale{'asinh', 'function', 'functionlog', 'linear', 'log', 'logit', 'symlog'}
-
axis
Axis
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.7.5/api/scale_api.html