所以我给自己做了一个很好的单词前缀字典,但现在我想用 matplotlib 将它转换成一个漂亮的直方图。我是整个 matplot 场景的新手,我没有看到任何其他接近的问题。

这是我的字典的示例

{'aa':4, 'ca':6, 'ja':9, 'du':10, ... 'zz':1}

最佳答案

我会为此使用 Pandas ,因为它已内置 vectorized string methods :

# create some example data
In [266]: words = np.asarray(['aafrica', 'Aasia', 'canada', 'Camerun', 'jameica',
                              'java', 'duesseldorf', 'dumont', 'zzenegal', 'zZig'])

In [267]: many_words = words.take(np.random.random_integers(words.size - 1,
                                                            size=1000))
# convert to pandas Series
In [268]: s = pd.Series(many_words)

# show which words are in the Series
In [269]: s.value_counts()
Out[269]:
zZig           127
Camerun        127
Aasia          116
canada         115
dumont         110
jameica        109
zzenegal       108
java           105
duesseldorf     83

# using vectorized string methods to count all words with same first two
# lower case strings as an example
In [270]: s.str.lower().str[:2].value_counts()
Out[270]:
ca    242
zz    235
ja    214
du    193
aa    116

Pandas 使用 numpymatplotlib ,但让一些事情更方便。

您可以像这样简单地绘制结果:
In [26]: s = pd.Series({'aa':4, 'ca':6, 'ja':9, 'du':10, 'zz':1})

In [27]: s.plot(kind='bar', rot=0)
Out[27]: <matplotlib.axes.AxesSubplot at 0x5720150>

关于python - 常见字符串前缀的直方图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13781519/

10-11 05:15