我希望直方图的每个“单元格”都有一个数字来表示该“单元格”中总点数的百分比,而不是颜色。除了以编程方式生成矩阵之外,还有其他方法吗?2D histogram of my data
根据M.T的建议,我认为seaborn.heatmap()请求一个2D数据数组。但我有两个一维数组(比如身高和体重,每个数据点都是一个具有(身高,体重)值的人。代码如下:)并且数组值没有特定的顺序。示例代码如下:
plt.hist2d(height, weight, (20, 50), range=np.array([(0, 200), (0, 500)]), cmap=plt.cm.Paired)
plt.colorbar()
plt.show()
发布于 2016-08-11 20:38:59
您可以使用文本并循环输出到规范化的hist2d
,如下所示:
import numpy as np
import matplotlib.pyplot as plt
height = [102, 99, 153, 98, 142, 198, 99]
weight = [201, 192, 295, 181, 315, 311, 181]
counts, xedges, yedges, Image = plt.hist2d(height, weight, (20, 50),
range=np.array([(0, 200), (0, 500)]),
cmap=plt.cm.Paired, normed=True)
dx = xedges[2]-xedges[1]
dy = yedges[2]-yedges[1]
for i in range(xedges.size-1):
for j in range(yedges.size-1):
xb = xedges[i] + 0.25*dx
yb = yedges[j] + 0.25*dy
plt.text(xb, yb, str(np.round(100.*counts[i,j],2)), fontsize=6 )
plt.show()
这给了我们
https://stackoverflow.com/questions/38889884
复制相似问题