如何在 Matplotlib 中绘制两个分布的差异?

matplotlibpythondata visualization

要在 Matplotlib 中绘制两个分布的差异,我们可以采取以下步骤 −

  • 设置图形大小并调整子图之间和周围的填充。

  • 使用 Numpy 创建 ab 数据集。

  • 获取 kdeakdeb,即使用高斯核表示核密度估计。

  • 使用 Numpy 创建网格。

  • 使用 kdea(grid)、kdeb(grid) 和绘制网格kdea(grid)-kdeb(grid),使用plot()方法。

  • 将图例放置在左上角。

  • 要显示图形,请使用show()方法。

示例

import numpy as np
import matplotlib.pyplot as plt
import scipy.stats

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

a = np.random.gumbel(50, 28, 100)
b = np.random.gumbel(60, 37, 100)

kdea = scipy.stats.gaussian_kde(a)
kdeb = scipy.stats.gaussian_kde(b)

grid = np.linspace(0, 50, 100)

plt.plot(grid, kdea(grid), label="Kde A")
plt.plot(grid, kdeb(grid), label="Kde B")
plt.plot(grid, kdea(grid)-kdeb(grid), label="Difference")

plt.legend(loc='upper left')

plt.show()

输出


相关文章