Matplotlib 简明教程
Matplotlib - Linear and Logarthmic Scales
What are Scales?
在 Matplotlib 库中,比例是指将数据值映射到绘图物理尺寸的过程。它们确定数据值如何沿着绘图的坐标轴表示和可视化。Matplotlib 支持各种类型的比例,并且比例的选择会显著影响可视化中数据的感知方式。
Linear Scale
线性刻度是用于以沿绘图中轴线表示数据的默认刻度。这是直接映射,其中数据值直接按其实际数值比例进行绘图。在线性刻度中,轴线上的等距表示数据中的等差。
Characteristics of Linear Scale
-
Equal Intervals - 在线性刻度中,轴线上的等距对应于数据值中的等差。
-
Linear Mapping - 数据值与其在轴线上的位置之间的关系是线性的。
Using Linear Scale
默认情况下,Matplotlib 库对 x 轴和 y 轴均使用线性刻度。为了明确设置线性刻度,我们不需要使用任何特定函数,因为这是默认行为。但是,我们可以使用 plt.xscale('linear') 或 plt.yscale('linear') 分别明确指定它,以用于 x 轴或 y 轴。
以下是将线性刻度应用于绘图的示例。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Linear Scale')
plt.show()
Logarithmic Scale
对数刻度使用对数映射来表示数据。当值范围较大并且对数刻度有助于强调较小值的改变时,这非常有用。
Characteristics of Logarithmic Scale
以下是对数刻度的特征。
在对数刻度中,轴上的等距表示值之间的相等比率,而不是相等差。
它将广泛的数据范围压缩成更易于阅读和解读的可视化效果。
它更强调较小值的变化,而不是较大值的变化。
Using Logarithmic Scale
要使用对数刻度,我们必须分别为 x 轴或 y 轴指定 plt.xscale('log') 或 plt.yscale('log') 。对数刻度对于可视化指数增长或跨越几个数量级的现象特别有用。
When to Use Logarithmic Scale
-
对数刻度适用于幅度变化较大的数据,或者需要强调较小值变化的数据。
-
通常用于金融(股票价格)、科学研究(分贝级、地震震级)和生物学(pH 值)等领域。
以下是采用对数刻度的示例图表。
import matplotlib.pyplot as plt
import numpy as np
# Generating logarithmically spaced data
x = np.linspace(1, 10, 100)
y = np.log(x)
# Creating a plot with a logarithmic scale for the x-axis
plt.plot(x, y)
plt.xscale('log') # Set logarithmic scale for the x-axis
plt.xlabel('X-axis (log scale)')
plt.ylabel('Y-axis')
plt.title('Logarithmic Scale')
plt.show()
在绘图中使用对数刻度可以深入了解具有广泛值的数据,从而更容易在同一绘图中跨不同刻度可视化模式和趋势。
Logarithmic plot of a cumulative distribution function
此示例显示了累积分布函数的对数图。
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
N = 100
data = np.random.randn(N)
X2 = np.sort(data)
F2 = np.array(range(N))/float(N)
plt.plot(X2, F2)
plt.xscale('log')
plt.yscale('log')
plt.show()