首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python生成关键字的直方图/pareto图

python生成关键字的直方图/pareto图
EN

Stack Overflow用户
提问于 2015-10-27 14:30:34
回答 2查看 3.9K关注 0票数 1

我有一大串单词,比如['abc', 'def', 'python', 'abc', 'python', ...]

  1. 如何生成列表/字典,并将其绘制成直方图/Pareto图表,如:{'python': 10, 'abc': 8, 'def': 2,...}
  2. 另外,有什么合适的图表库来可视化从高到低的上述单词的出现呢?
EN

回答 2

Stack Overflow用户

发布于 2015-10-28 01:05:42

collections.Counter提供了一种方便和相对快速的方法来创建像您展示的字典:

代码语言:javascript
复制
from collections import Counter

x = ['spam', 'ham', 'eggs', 'ham', 'chips', 'eggs',  'spam', 'spam', 'spam']

counts = Counter(x)
print(counts)
# Counter({'spam': 4, 'eggs': 2, 'ham': 2, 'chips': 1})

要将计数可视化,可以使用matplotlib条形图:

代码语言:javascript
复制
from matplotlib import pyplot as plt
import numpy as np

# sort counts in descending order
labels, heights = zip(*sorted(((k, v) for k, v in counts.items()), reverse=True))

# lefthand edge of each bar
left = np.arange(len(heights))

fig, ax = plt.subplots(1, 1)
ax.bar(left, heights, 1)
ax.set_xticks(left + 0.5)
ax.set_xticklabels(labels,  fontsize='large')

票数 2
EN

Stack Overflow用户

发布于 2015-10-27 14:34:23

你可以得到一个单词计数:

代码语言:javascript
复制
lst = ['abc', 'def', 'python', 'abc', 'python']
wordcount = {}
for word in lst:
    wordcount.setdefault(word,0)
    wordcount[word] += 1

实际上,使用python:https://plot.ly/python/histograms/创建图表似乎是上帝的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33370669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档