本文介绍对平面散点数据的分布使用 np.histogram2d进行二维直方分布统计并使用matplotlib绘制热图,用于单颗粒界面分布密度的可视化。
结果如上图,代码如下:
import numpy as npimport matplotlib.pyplot as plt
xx = np.random.rand(1000)*60yy = np.random.rand(1000)*60
sampling = int(np.ptp(xx)/0.7/4)print("采样次数",sampling)print("采样窗口大小为 12σ:", 0.7*4, "μm")
xedges = np.linspace(xx.min(), xx.max(), sampling)yedges = np.linspace(yy.min(), yy.max(), sampling)H, xedges, yedges = np.histogram2d(xx, yy, bins=(xedges, yedges), density=False)# 返回的H,列是x,行是y,如果要使用 plt.imshow 注意转置# plt.figure(figsize=(4,4))plt.imshow(H.T, interpolation='nearest', cmap=cmap, vmin=0, vmax=9)# cmap 是自定义colormapplt.gca().invert_yaxis()# imshow时,行的索引是从上至下的,如要与原来的保持一致,注意反转plt.axis("off")plt.colorbar()plt.show()