如何使用二维数组创建直方图

How do I create a histogram with a 2D array

我有一个 7x2 矩阵,第一列是数量,第二列是值:

[[0.5        3.        ]
 [0.5        4.        ]
 [1.         4.        ]
 [0.5        8.        ]
 [0.5        9.        ]
 [0.5        8.        ]
 [0.5        5.99638637]]

例如,第一行表示值 3 中有 0.5 个。考虑到值可能以多个形式出现,我应该如何制作一个直方图,其中 x 轴表示值,y 轴表示数量行数?

所以我的建议是创建一个numpy数组,然后遍历行,将出现的次数添加到字典中的一个键,将字典中的键初始化为0。

import collections
import numpy as np
import matplotlib.pyplot as plt

myArray = np.array([[0.5,        3.        ],
                    [0.5,        4.        ],
                    [1.,         4.        ],
                    [0.5,        8.        ],
                    [0.5,        9.        ],
                    [0.5,        8.        ],
                    [0.5,        5.99638637]])

myDict = collections.defaultdict(lambda:0)

for i in range(myArray.shape[0]):
    myDict[myArray[i,1]] += myArray[i,0]

plt.bar(myDict.keys(), myDict.values())
plt.show()