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), в зависимости от входных данных.
- classmatplotlib.scale.FuncScale(axis, functions)[source]
-
Bases:
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 в экземпляры, подходящие для этой шкалы.
- classmatplotlib.scale.FuncScaleLog(axis, functions, base=10)[source]
-
Bases:
LogScaleОбеспечивает произвольную шкалу с функциями, заданными пользователем, для оси и затем размещает ее на логарифмической оси.
- Параметры:
-
-
axis
matplotlib.axis.Axis -
Ось для шкалы.
- functions(callable, callable)
-
Двухэлементный кортеж из прямых и обратных функций для шкалы. Прямая функция должна быть монотонной.
Обе функции должны иметь подпись:
def forward(values: array-like) -> array-like
- basefloat, default: 10
-
Логарифмическое основание шкалы.
-
axis
- propertybase
- get_transform()[source]
-
Возвращает
Transform, связанную с этой шкалой.
- name='functionlog'
- classmatplotlib.scale.FuncTransform(forward, inverse)[source]
-
Bases:
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- 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]
-
Применить только неаффинную часть этого преобразования.
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), в зависимости от входных данных.
- classmatplotlib.scale.InvertedLogTransform(base)[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]
-
Применить только неаффинную часть этого преобразования.
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), в зависимости от входных данных.
- 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]
-
Основы:
ScaleBaseСтандартная логарифмическая шкала. Учитываются только положительные значения.
- Параметры:
-
-
axis
Axis -
Ось для шкалы.
- baseчисло, по умолчанию: 10
-
Основание логарифма.
- nonpositive{'clip', 'mask'}, по умолчанию: 'clip'
-
Определяет поведение для неположительных значений. Они могут быть замаскированы как недопустимые или обрезаны до очень малого положительного числа.
- subsпоследовательность целых чисел, по умолчанию: None
-
Где разместить дополнительные метки между каждой основной меткой. Например, в логарифмической шкале log10,
[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]
-
Основы:
Transform- Параметры:
-
- shorthand_nameстрока
-
Строка, представляющая «имя» преобразования. Имя не имеет значения, кроме как для повышения удобочитаемости
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.LogisticTransform(nonpositive='mask')[source]
-
Базы:
Transform- Параметры:
-
- короткое_наименованиеstr
-
Строка, представляющая "название" преобразования. Название не имеет никакого значения, кроме повышения удобочитаемости
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)
- классmatplotlib.scale.LogitScale(axis, nonpositive='mask', *, one_half='\\frac{1}{2}', use_overline=False)[source]
-
Базы:
ScaleBaseЛогистический масштаб для данных между нулём и единицей, исключая их.
Этот масштаб похож на логарифмический масштаб вблизи нуля и единицы, и почти линейный около 0,5. Он отображает интервал ]0, 1[ на ]-infty, +infty[.
- Параметры:
-
-
ось
matplotlib.axis.Axis -
В настоящее время не используется.
- nonpositive{'mask', 'clip'}
-
Определяет поведение для значений за пределами открытого интервала ]0, 1[. Они могут быть замаскированы как недопустимые или обрезаны до числа, очень близкого к 0 или 1.
- use_overlinebool, по умолчанию: False
-
Указывает на использование обозначения выживаемости (overline{x}) вместо стандартного обозначения (1-x) для вероятности, близкой к единице.
- one_halfstr, по умолчанию: r"frac{1}{2}"
-
Строка, используемая для форматирования меток, чтобы представить 1/2.
-
ось
- get_transform()[source]
-
Возвращает
LogitTransform, связанное с этим масштабом.
- limit_range_for_scale(vmin, vmax, minpos)[source]
-
Ограничение области значениями между 0 и 1 (исключая).
- name='logit'
- set_default_locators_and_formatters(axis)[source]
-
Установить локаторы и форматировщики axis на экземпляры, подходящие для этого масштаба.
- классmatplotlib.scale.LogitTransform(nonpositive='mask')[source]
-
Базы:
Transform- Параметры:
-
- короткое_наименованиеstr
-
Строка, представляющая "название" преобразования. Название не имеет никакого значения, кроме повышения удобочитаемости
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.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
-
Где разместить дополнительные метки между каждой основной меткой. Например, в логарифмической шкале по основанию 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
-
Строка, представляющая «имя» преобразования. Имя не имеет значения, кроме улучшения удобочитаемости
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). В аффинных преобразованиях это всегда бездействие.- 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
matplotlib.axis.Axis
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.6.0/api/scale_api.html