如何在 Matplotlib 中绘制对数坐标轴?

2025年1月5日 | 阅读 3 分钟

Matplotlib 的 yscale() 和 xscale() 函数在所有通过该程序创建的图中默认产生线性坐标轴。可以通过 pyplot 包相应地将 y 轴或 x 轴的刻度更改为对数刻度。

刻度转换的类型作为单个值传递给 yscale() 和 xscale() 方法;要将坐标轴转换为对数刻度,我们传递 matplotlib.scale 或“log”关键字。使用 LogScale 类调用 yscale 或 xscale 方法。

xscale 方法语法

语法

参数

  • 值 = { "linear," "log," "symlog," "logit,"… }
  • **kwargs = 根据刻度 (matplotlib.scale.LinearScale, LogScale, SymmetricalLogScale, LogitScale) 识别各种关键字参数。

返回:将 x 轴转换为指定的刻度格式。(此处使用“log”刻度类型。)

yscale 方法语法

语法

参数

  • 值 = { "linear," "log," "symlog", "logit", … }
  • **kwargs = 根据刻度 (matplotlib.scale.LinearScale, LogScale, SymmetricalLogScale, LogitScale) 识别各种关键字参数。

返回:将 y 轴转换为指定的刻度类型。(此处使用“log”刻度类型。)

下面展示了分别将 y 轴和 x 轴更改为对数刻度的方法。

示例 1:不使用对数坐标轴

程序说明

此 Python 程序使用 Matplotlib 包绘制一个指数函数,即函数 y = 10^x。使用列表推导式创建 'data' 列表,其中每个成员都计算为 10 的 'i' 次方,其中 'i' 是 0 到 4 之间的任何数字。在生成的图形中可以看到指数增长序列。然后该程序使用 Matplotlib 绘制这些数字,以生成一个线图,以视觉形式显示指数增长。x 轴隐式表示 'data' 列表的索引,而 y 轴表示计算出的值。函数指数增长趋势在生成的图中可见。

输出

How to Plot Logarithmic Axes in Matplotlib

示例 2:y 轴对数刻度。

程序说明

此 Python 程序使用 Matplotlib 模块绘制指数函数 y = 10^x。使用列表推导式创建 'data' 列表,其中每个条目表示一个指数增长序列,并计算为 10 的 'i' 次方,其中 'i' 从 0 到 4。然后程序使用 Matplotlib 将数据绘制成一条线。但是,通过使用 plt.yscale("log") 调整 y 轴刻度为对数刻度,做出了一个关键的更改。这种转换通过在对数刻度上绘制 y 轴值来突出数据的指数特征,从而生成图形。生成的图形更清晰地说明了指数增长,因为对数刻度压缩了较大的数字,从而实现了更准确的描绘。

输出

How to Plot Logarithmic Axes in Matplotlib

示例 3:x 轴对数刻度。

程序说明

此 Python 程序使用 Matplotlib 模块绘制指数函数 x = 10^y。使用列表推导式创建两个列表,“datax”和“datay”,其中“datax”表示 x 轴值,范围从 0 到 4,“datay”表示等效的 y 轴值,范围也从 0 到 4。然后程序使用 Matplotlib 将数据绘制成一条线。使用 plt.xscale("log") 将 x 轴刻度设置为对数刻度是一个重大的调整。生成的图形通过在对数刻度上绘制 x 轴值来突出数据的指数特征。

输出

How to Plot Logarithmic Axes in Matplotlib