如何从数据中绘制二维累积分布函数?

时间:2020-10-29 08:33:48

标签: matplotlib distribution cdf

我有一个二维数据集[[2010,2017,1937,...,],[1,1,3,....,]],我想从数据中绘制累积分布函数

现在我可以使用plt.hist2d()绘制PDF,但是如何绘制CDF?

谢谢!

1 个答案:

答案 0 :(得分:0)

plt.hist2d返回一个直方图值矩阵,x和y方向上的bin边界以及一个网格对象。您可以将两个方向的直方图值相加并绘制它们。

np.histogram2d可以替换plt.hist2d,返回除网格对象之外的相同值。

import matplotlib.pyplot as plt
import numpy as np

N = 200
x = np.random.randint(1900, 2020, N)
y = np.random.randint(1, 10, N)
fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(12, 4))
hist_vals, xbins, ybins, mesh = ax1.hist2d(x, y)
ax2.pcolormesh(xbins, ybins, hist_vals.cumsum(axis=0).cumsum(axis=1))
plt.show()

example plot