如何按顺序绘制计数器?

How can I plot a counter in order?

我有一个 Python 计数器,它存储元组键和 int 值,看起来像这样:

Counter({(0,): 31118, (160,): 7931, (229,): 7183, (225,): 5668, (48,): 5667, ... , (171,): 19})

里面的项目是按照它们的值的降序排列的,我正在尝试以相同的方式绘制它们。

我尝试使用 plt.bar 而只使用前 10 个值(使用完整集时它的随机顺序相同):

keylist = list()

for key in countersum.keys():
    keylist.append(str(key))

plt.bar(keylist[:10], list(countersum.values())[:10])
plt.show()

这给了我下图:

问题是为什么它没有排序,我怎样才能让它按值的降序排列?

IIUC,您需要先根据值对 dict 进行排序,然后如下所示绘制它们:

>>> dct = {(171,): 19, (0,): 31118, (225,): 5668, (160,): 7931, (48,): 5667, (229,): 7183}

>>> srt_dct = dict(sorted(dct.items(), key=lambda item: item[1], reverse=True))

>>> srt_dct
{(0,): 31118,
 (160,): 7931,
 (229,): 7183,
 (225,): 5668,
 (48,): 5667,
 (171,): 19}