简介
在本实验中,我们将学习如何在 Matplotlib 中创建具有对数几率轴的图表。对数几率轴常用于概率图,以表示分布的累积分布函数(CDF)。本实验我们将使用 math、numpy 和 matplotlib.pyplot 库。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会及时为你解决问题。
导入必要的库并设置数据
我们将导入 math、numpy 和 matplotlib.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 中创建具有对数几率轴的图表。我们创建了具有对数几率尺度和标准符号、对数几率尺度和生存符号以及线性尺度的图表。在本实验中我们使用了 math、numpy 和 matplotlib.pyplot 库。