Matplotlib - 对称对数刻度和Logit刻度



对称对数刻度

对称对数刻度类似于对数刻度。它通常缩写为symlog,这是一种用于在轴上表示数据的刻度类型,其中值使用对数间隔对称分布在零周围。它为正值和负值提供了类似对数的刻度,同时容纳零。

要在 x 轴和 y 轴上应用对称对数刻度,我们必须分别使用plt.xscale('symlog')plt.yscale('symlog')

对称对数刻度的特征

对称对数刻度具有以下特征。

  • 对称行为 - 对数表示正值和负值,同时处理零。
  • 零附近线性 - 刻度在零附近一定范围内(linthresh)是线性的,然后过渡到对数行为。

对称对数刻度的参数

linthresh - 线性阈值,用于确定零周围刻度线性行为的范围,然后过渡到对数刻度。

何时使用对称对数刻度

  • 零附近的的数据 - 适用于包含以零为中心且具有广泛正值和负值范围的值的数据集。
  • 避免对称偏差 - 当需要对正值和负值进行对称表示而不对任一侧产生偏差时。

对称对数刻度的重要性

对称对数刻度提供了一种类似对数的刻度,可以容纳正值和负值,使其可用于可视化围绕零具有平衡分布的数据集。

它还有助于突出零附近的较小变化,同时容纳较大的值而不会歪曲表示。

使用对称对数刻度的绘图

在此图中,我们通过使用plt.yscale('symlog', linthresh=0.01)在 y 轴上创建对称对数刻度。

示例

import matplotlib.pyplot as plt
import numpy as np
# Generating data for a sine wave with values around zero
x = np.linspace(-10, 10, 500)
y = np.sin(x)
# Creating a plot with a symmetrical logarithmic scale for the y-axis
plt.plot(x, y)
# Set symmetrical logarithmic scale for the y-axis
plt.yscale('symlog', linthresh=0.01)  
plt.xlabel('X-axis')
plt.ylabel('Y-axis (symlog scale)')
plt.title('Symmetrical Logarithmic Scale')
plt.show()
输出
Symmetric Log

在 Matplotlib 中使用对称对数刻度可以可视化包含零附近的值的数据集,方法是能够有效地表示和分析对称分布的数据。调整线性阈值 (linthresh) 参数对于确定刻度在零附近线性行为的范围(然后过渡到对数刻度)至关重要。

Logit 刻度

Logit 刻度是一种专门的刻度类型,用于在轴上表示数据,其中值限制在 0 和 1 之间。它专为在此范围内存在的数据而设计,通常在概率或表示概率的值中遇到。

设置刻度

plt.xscale()plt.yscale()函数可分别用于设置 x 轴和 y 轴的刻度。

Logit 刻度的特征

以下是 Logit 刻度的特征。

  • 约束数据 - 专用于 0 和 1 之间的数据。
  • 变换 - 利用 logit 函数将值从标准逻辑分布映射。

何时使用 Logit 刻度

概率数据 - 适用于可视化概率或表示概率的值,尤其是在处理逻辑回归或逻辑模型时。

0 到 1 范围内的数据 - 专为 0 到 1 区间内的数据而设计。

Logit 刻度的重要性

  • Logit 刻度有助于可视化和分析表示概率或具有概率解释的数据。
  • 它还有助于理解和可视化概率相关数据的变换。

使用 Logit 刻度的绘图

在此图中,我们在 x 轴和 y 轴上创建 Logit 刻度。

示例

import matplotlib.pyplot as plt
import numpy as np
# Generating data within the 0 to 1 range
x = np.linspace(0.001, 0.999, 100)
y = np.log(x / (1 - x))
# Creating a plot with a logit scale for the x-axis
plt.plot(x, y)
plt.xscale('logit')  # Set logit scale for the x-axis
plt.xlabel('X-axis (logit scale)')
plt.ylabel('Y-axis')
plt.title('Logit Scale')
plt.show()
输出
Logit Scale

了解并选择适合绘图的刻度对于准确表示基础数据并确保在可视化中有效传达模式和趋势非常重要。

在 Matplotlib 库中按名称绘制 yscale 类线性、对数、logit 和 symlog。

在此图中,我们按名称绘制 yscale 类线性、对数、logit 和 symlog。

示例

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
y = np.random.normal(loc=0.5, scale=0.4, size=1000)
y = y[(y > 0) & (y < 1)]
y.sort()
x = np.arange(len(y))

# linear
plt.subplot(221)
plt.plot(x, y)
plt.yscale('linear')
plt.title('linear')

# log
plt.subplot(222)
plt.plot(x, y)
plt.yscale('log')
plt.title('log')

# symmetric log
plt.subplot(223)
plt.plot(x, y - y.mean())
plt.yscale('symlog', linthresh=0.01)
plt.title('symlog')

# logit
plt.subplot(224)
plt.plot(x, y)
plt.yscale('logit')
plt.title('logit')
plt.show()
输出
Logit Scale
广告