Matplotlib 对数坐标轴绘图

Beginner

This tutorial is from open-source community. Access the source code

简介

本逐步教程将指导你使用 Python Matplotlib 创建带有对数轴的图表。本教程将涵盖以下主题:

  1. 半对数 y 轴图(Semilogy Plot)
  2. 半对数 x 轴图(Semilogx Plot)
  3. 双对数轴图(Loglog Plot)
  4. 误差线图(Errorbars Plot)

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

半对数 y 轴图

半对数 y 轴图是一种 y 轴采用对数刻度的图表。它对于可视化具有大范围值的数据很有用。

import matplotlib.pyplot as plt
import numpy as np

## Data for plotting
t = np.arange(0.01, 20.0, 0.01)

## Create figure
fig, ax1 = plt.subplots()

## Plot data on semilogy plot
ax1.semilogy(t, np.exp(-t / 5.0))

## Add title and grid to plot
ax1.set(title='Semilogy Plot')
ax1.grid()

## Display plot
plt.show()

半对数 x 轴图

半对数 x 轴图是一种 x 轴采用对数刻度的图表。它对于可视化在 x 轴上具有大范围值的数据很有用。

import matplotlib.pyplot as plt
import numpy as np

## Data for plotting
t = np.arange(0.01, 20.0, 0.01)

## Create figure
fig, ax2 = plt.subplots()

## Plot data on semilogx plot
ax2.semilogx(t, np.sin(2 * np.pi * t))

## Add title and grid to plot
ax2.set(title='Semilogx Plot')
ax2.grid()

## Display plot
plt.show()

双对数轴图

双对数轴图是一种在 x 轴和 y 轴上均采用对数刻度的图表。它对于可视化在两个轴上都具有大范围值的数据很有用。

import matplotlib.pyplot as plt
import numpy as np

## Data for plotting
t = np.arange(0.01, 20.0, 0.01)

## Create figure
fig, ax3 = plt.subplots()

## Plot data on loglog plot
ax3.loglog(t, 20 * np.exp(-t / 10.0))

## Set x-axis scale to base 2
ax3.set_xscale('log', base=2)

## Add title and grid to plot
ax3.set(title='Loglog Plot')
ax3.grid()

## Display plot
plt.show()

误差线图

误差线图是一种为每个数据点显示误差线的图表。如果某个数据点的值为负,它将被截断为 0.1。

import matplotlib.pyplot as plt
import numpy as np

## Data for plotting
x = 10.0**np.linspace(0.0, 2.0, 20)
y = x**2.0

## Create figure
fig, ax4 = plt.subplots()

## Set x-axis and y-axis to logarithmic scale
ax4.set_xscale("log", nonpositive='clip')
ax4.set_yscale("log", nonpositive='clip')

## Plot data with error bars
ax4.errorbar(x, y, xerr=0.1 * x, yerr=5.0 + 0.75 * y)

## Set title and y-axis limit
ax4.set(title='Errorbars Plot')
ax4.set_ylim(bottom=0.1)

## Display plot
plt.show()

总结

Python 的 Matplotlib 是创建数据可视化的强大工具。本教程介绍了如何使用半对数 y 轴图(semilogy)、半对数 x 轴图(semilogx)、双对数轴图(loglog)和误差线图(errorbars)来创建带有对数坐标轴的图表。通过使用这些类型的图表,你可以有效地可视化具有大范围值的数据。