Matplotlib - 对数线性刻度



什么是对数线性刻度?

在 Matplotlib 中,对数线性刻度 (symlog) 结合了线性刻度和对数刻度,提供了一种绘制包含正值和负值数据的方法,同时适应各种数量级。

对数线性刻度的特点

以下是对数线性刻度的特点。让我们逐一详细了解。

零点附近线性

在 Matplotlib 库的对数线性刻度中,零点附近线性指的是刻度在零点附近的行为。对数线性刻度结合了线性刻度和对数刻度,尤其是在零点附近,以便更细致地表示数据。

零点附近的线性行为

接近零 - 对于接近零的值(即零点周围的某个范围内),对数线性刻度的行为是线性的,类似于线性刻度。

线性阈值 (linthresh) - linthresh 参数定义了刻度线性行为的零点周围范围。此阈值内的值以线性方式表示。

线性区域 - 在指定的零点周围阈值内,对数线性刻度的行为类似于典型的线性刻度,保留了数据值与其在图上表示之间的直接关系。

示例

在这个例子中,我们将 linthresh 参数设置为 0.1,使得零点周围的范围(在本例中为 -0.1 到 0.1)表现为线性。此范围内的值在图上以线性方式表示,从而可以更集中、更精确地显示接近零的数据,同时以对数方式适应远离零的较大值。

import matplotlib.pyplot as plt
import numpy as np
# Sample data with positive and negative values
x = np.linspace(-10, 10, 100)
y = np.sinh(x)  # Hyperbolic sine function for demonstration
# Creating a plot with symlog scale on y-axis
plt.plot(x, y)
plt.yscale('symlog', linthresh=0.1)  # Set y-axis to symlog scale with a linear threshold of 0.1
plt.xlabel('X-axis')
plt.ylabel('Y-axis (Symlog Scale)')
plt.title('Plot with Symlog Scale (Linear Near Zero)')
plt.show()
输出
Linear Near Zero

零点附近线性的用例

关注零点附近的小变化 - 允许更好地表示零点附近的小变化或差异,而不会丢失关于较大值的信息。

处理以零为中心的模式的数据 - 对于以零为中心出现模式或变化的数据集非常有用。

对称对数刻度

对称对数刻度在 Matplotlib 中通常称为 symlog 刻度,这是一种结合线性刻度和对数刻度来对称表示零点周围数据的方法。当处理包含跨越正负范围的值且需要在各种值范围内进行细致表示的数据集时,此刻度特别有用。

对称对数刻度的特点

对称行为 - 对称对数刻度保持围绕零的对称性,适应正值和负值。

零点附近线性区域 - 接近零点(零点周围的某个范围内),刻度线性运行,保留了值与其在图上表示之间的直接比例关系。

远离零的对数刻度 - 当值远离零点(正负值)时,刻度转换为对数刻度,允许以对数方式表示较大的绝对值。

线性阈值 (linthresh) - linthresh 参数定义了刻度线性行为的零点周围范围。

示例

在这个例子中,linthresh0.1 的对称对数刻度指定了范围在 -0.10.1(零点附近)的值在 x 轴上以线性方式表示。

import matplotlib.pyplot as plt
import numpy as np
# Sample data with positive and negative values
x = np.linspace(-10, 10, 100)
y = np.sinh(x)  # Hyperbolic sine function for demonstration
# Creating a plot with symlog scale on y-axis
plt.plot(x, y)
plt.xscale('symlog', linthresh=0.1)  # Set x-axis to symlog scale with a linear threshold of 0.1
plt.xlabel('X-axis')
plt.ylabel('Y-axis (Symlog Scale)')
plt.title('Plot with Symlog Scale')
plt.show()

输出

Symmetric Log Scale

用例

处理同时包含正值和负值的数据 - 对于跨越正负范围的数据集非常有用。

集中的可视化 - 这允许关注零点附近的小变化,同时以对数方式适应远离零的较大值。

远离零的对数刻度

远离零的对数刻度指的是对数刻度在绘图中的行为,尤其是在 Matplotlib 的对数线性刻度中。

以下是远离零的对数刻度的特点。

接近零 - 接近零点(由 linthresh 参数定义的零点周围的指定范围),刻度呈线性行为,保留了绘制的值与其在图上表示之间的直接关系。

远离零 - 当值远离零点(正负值)时,刻度转换为对数刻度。

对数行为 - 刻度以对数方式表示较大的绝对值,使用基数的值(例如,通常为 10 或 e)来压缩这些较大值的范围。

值的压缩 - 由于对数刻度,远离零的较大绝对值在图上被压缩,这使得更有效地可视化宽范围的值变得更容易。

示例

在这个例子中,我们将 xscale 和 yscale 的 linthresh 参数分别设置为 0.2 和 0.1。

import matplotlib.pyplot as plt
import numpy as np
# Sample data with positive and negative values
x = np.linspace(-10, 10, 100)
y = np.sinh(x)  # Hyperbolic sine function for demonstration
# Creating a plot with symlog scale on y-axis
plt.plot(x, y)
plt.xscale('symlog', linthresh=0.2)  # Set x-axis to symlog scale with a linear threshold of 0.2
plt.yscale('symlog', linthresh=0.1)  # Set x-axis to symlog scale with a linear threshold of 0.1
plt.xlabel('X-axis')
plt.ylabel('Y-axis (Symlog Scale)')
plt.title('Plot with Symlog Scale')
plt.show()

输出

Logarthmic Away Zero
广告