Matplotlib 对数几率尺度绘图

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将学习如何在 Matplotlib 中创建具有对数几率轴的图表。对数几率轴常用于概率图,以表示分布的累积分布函数(CDF)。本实验我们将使用 mathnumpymatplotlib.pyplot 库。

虚拟机使用提示

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

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

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

导入必要的库并设置数据

我们将导入 mathnumpymatplotlib.pyplot 库,并为图表设置数据。

import math
import numpy as np
import matplotlib.pyplot as plt

xmax = 10
x = np.linspace(-xmax, xmax, 10000)
cdf_norm = [math.erf(w / np.sqrt(2)) / 2 + 1 / 2 for w in x]
cdf_laplacian = np.where(x < 0, 1 / 2 * np.exp(x), 1 - 1 / 2 * np.exp(-x))
cdf_cauchy = np.arctan(x) / np.pi + 1 / 2

创建具有对数几率尺度和标准符号的图表

我们将创建一个具有对数几率尺度和标准符号的图表。这可以通过使用 set_yscale("logit") 将 y 轴尺度设置为对数几率,并使用 set_ylim() 设置 y 轴范围来实现。我们还将使用 plot() 绘制正态分布、拉普拉斯分布和柯西分布的累积分布函数,并使用 legend() 添加图例。

fig, axs = plt.subplots(nrows=1, ncols=1, figsize=(6.4, 4.8))

axs.plot(x, cdf_norm, label=r"$\mathcal{N}$")
axs.plot(x, cdf_laplacian, label=r"$\mathcal{L}$")
axs.plot(x, cdf_cauchy, label="Cauchy")
axs.set_yscale("logit")
axs.set_ylim(1e-5, 1 - 1e-5)
axs.legend()
axs.grid()

plt.show()

创建具有对数几率尺度和生存符号的图表

我们将创建一个具有对数几率尺度和生存符号的图表。这可以通过将 y 轴尺度设置为对数几率,并使用 set_yscale("logit", one_half="1/2", use_overline=True)one_half 参数设置为 "1/2" 以及将 use_overline 参数设置为 True 来实现。我们还将使用 plot() 绘制正态分布、拉普拉斯分布和柯西分布的累积分布函数,并使用 legend() 添加图例。

fig, axs = plt.subplots(nrows=1, ncols=1, figsize=(6.4, 4.8))

axs.plot(x, cdf_norm, label=r"$\mathcal{N}$")
axs.plot(x, cdf_laplacian, label=r"$\mathcal{L}$")
axs.plot(x, cdf_cauchy, label="Cauchy")
axs.set_yscale("logit", one_half="1/2", use_overline=True)
axs.set_ylim(1e-5, 1 - 1e-5)
axs.legend()
axs.grid()

plt.show()

创建具有线性尺度的图表

我们将创建一个具有线性尺度的图表。这可以通过使用 plot() 简单地绘制正态分布、拉普拉斯分布和柯西分布的累积分布函数,并使用 legend() 添加图例来实现。

fig, axs = plt.subplots(nrows=1, ncols=1, figsize=(6.4, 4.8))

axs.plot(x, cdf_norm, label=r"$\mathcal{N}$")
axs.plot(x, cdf_laplacian, label=r"$\mathcal{L}$")
axs.plot(x, cdf_cauchy, label="Cauchy")
axs.legend()
axs.grid()

plt.show()

总结

在本实验中,我们学习了如何在 Matplotlib 中创建具有对数几率轴的图表。我们创建了具有对数几率尺度和标准符号、对数几率尺度和生存符号以及线性尺度的图表。在本实验中我们使用了 mathnumpymatplotlib.pyplot 库。