使用字典制作matplotlib图?

How*_*can 1 python dictionary matplotlib

如果我在字符串中有单词及其频率的字典,例如:

{'hello': 3, 'how': 4, 'yes': 10, 'you': 11, 'days': 10, 'are': 20, 'ago': 11}
Run Code Online (Sandbox Code Playgroud)

我如何使用matplotlib制作一个条形图?我发现之前的问题有一个看似很好的解决方案,但它对我不起作用(python:使用matplotlib使用字典绘制条形图)

我跑的时候

plt.bar(range(len(d)), d.values(), align="center")
plt.xticks(range(len(d)), d.keys())
Run Code Online (Sandbox Code Playgroud)

我收到了错误

TypeError: 'dict_keys' object does not support indexing
Run Code Online (Sandbox Code Playgroud)

我真的没看到我在哪里索引我的字典.这可能是因为在我得到代码的问题中,x值也是数字?我不确定.

Mar*_*ius 9

尝试打包你d.keys()list()电话:

plt.bar(range(len(d)), d.values(), align="center")
plt.xticks(range(len(d)), list(d.keys()))
Run Code Online (Sandbox Code Playgroud)

在Python3中,dict.keys()不直接返回键列表,而是返回一个生成器,当您使用它时,它将为您提供一个键.