如何在Matplotlib中绘制两个分布的差异?
要在Matplotlib中绘制两个分布的差异,我们可以遵循以下步骤 −
- 设置绘图窗口大小并调整子图之间和周围的填充。
-
使用Numpy创建数据集 a 和 b 。
-
获取 kdea 和 kdeb ,即使用高斯内核估计密度的表示。
-
使用Numpy创建网格。
-
使用 plot() 方法绘制网格、 kdea(grid), kdeb(grid) 和 kdea(grid)-kdeb(grid) 。
-
将图例放在左上角。
-
使用 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()