python - 基于字符串值列表的条形图

我正在做一些聚类,结果是这样的字符串列表:

['5-3-2', '5-3-2', '4-3-2-1', ...]

我想根据字符串的频率绘制条形图。是否有捷径可寻?我想我可以识别列表中的独特元素并计算它们,但也许有更舒适的解决方案?

编辑:更多信息

    import matplotlib.pyplot as plt
    import numpy as np
    import math as math
    import Utils as ut
    from sklearn.cluster import KMeans
    from itertools import cycle

...
    result = np.array(result)
    keys, counts = np.unique(result, return_counts=True)
    print('Keys: ', keys)
    print('Counts: ', counts)

    print(result)

    plt.bar(keys,counts)
    plt.show

输出:

Keys:  ['3-1-4-2' '3-2-3-2' '3-3-2-2' '4-2-2-2' '4-2-3-1' '4-4-2']
Counts:  [ 21 154  23   1  48   4]

编辑 2:绘图在 Debug模式下显示,在 plt.show 上有断点,当我跨过它时它会消失。所以它在运行模式下不可见。有什么建议吗?

最佳答案

np.unique可以返回列表中唯一元素的计数。

keys, counts = np.unique(x, return_counts=True)

然后您可以将它们绘制为条形图。

import matplotlib.pyplot as plt
import numpy as np

x = ['5-3-2', '5-3-2', '4-3-2', "2-3-2", '4-3-2', '4-3-2', "1-2-4"]
keys, counts = np.unique(x, return_counts=True)

plt.bar(keys, counts)
plt.show()

https://stackoverflow.com/questions/49017002/

相关文章:

python - 如何在 Python 中将加权边列表转换为邻接矩阵?

python - 需要字段的 django rest 框架错误

javascript - 如何将 jointjs 与 reactjs 一起使用?

javafx - 如何在 JavaFX 中设置默认关闭操作?

ios - 更改模型后的核心数据迁移

python - "invalid character ' u ' looking for begi

google-cloud-platform - 在 Google Cloud Storage 上恢复

ruby - 如何将 --help, -h 标志添加到 Thor 命令?

sql - 在PostgreSQL中获取2个字符之间的子字符串

sql - 带有窗口函数的 CASE 语句