读取一个文本文件(alphatwice.txt),统计该文件内英文字母(区分大小 写)的出现次数,选择出现次数最高的 10 个英文字母,利用 matplotlib 库 绘制“字母-次数”直方图,最后将直方图保存为一个图像文件。
时间: 2024-05-08 14:15:26 浏览: 77
以下是Python代码实现:
```python
import matplotlib.pyplot as plt
from collections import Counter
# 读取文件内容
with open('alphatwice.txt', 'r') as f:
text = f.read()
# 统计字母出现次数
counter = Counter(text)
# 选择出现次数最高的10个英文字母
top_10 = counter.most_common(10)
# 分离字母和出现次数
letters, counts = zip(*top_10)
# 绘制直方图并保存为图像文件
plt.bar(letters, counts)
plt.xlabel('Letter')
plt.ylabel('Frequency')
plt.title('Top 10 English Letters in alphatwice.txt')
plt.savefig('top_10_letters.png')
plt.show()
```
代码解释:
1. 读取文件内容,存储在字符串变量`text`中。
2. 使用`collections`模块的`Counter`函数统计字母出现次数,存储在变量`counter`中。
3. 使用`most_common`方法选择出现次数最高的前10个英文字母,存储在变量`top_10`中。`most_common`方法返回一个列表,列表中的每个元素是一个元组,第一个元素是字母,第二个元素是出现次数。
4. 使用`zip`函数将字母和出现次数分离成两个元组,分别存储在`letters`和`counts`变量中。
5. 使用`matplotlib`库的`bar`函数绘制直方图,`xlabel`、`ylabel`、`title`函数分别设置X轴标签、Y轴标签和标题。
6. 使用`savefig`函数将图像保存为PNG格式的图片。
7. 使用`show`函数显示图像。
阅读全文