bar()命令画图时中文乱码解决问题

在使用Python的matplotlib库绘制图形时,可能会遇到中文显示为乱码以及坐标轴负号显示异常的情况。为了解决这些问题,可以分别通过设置`font.sans-serif`为MicrosoftYaHei来处理中文乱码,以及将`axes.unicode_minus`设为False来正常显示负号。这两行代码能有效改善图表的显示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们使用bar命令绘图时有时候会发现有中文乱码和需要坐标轴负的问题,如下图。

此时只需要添加下面两行代码就可以解决

# 中文乱码处理
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 坐标轴负号处理
plt.rcParams['axes.unicode_minus'] = False

首先,为了完成这个任务,我们需要使用Python的`collections`模块中的`FreqDist`函数以及`matplotlib`库来绘制频率分布图。假设`xiyouji5.txt`文件位于指定路径下,以下是完整的Python代码示例: ```python import collections import matplotlib.pyplot as plt # 定义文件路径 file_path = r"D:\xiyouji5.txt" # 读取文件内容 with open(file_path, 'r', encoding='utf-8') as f: text = f.read() # 计算字符频率 char_freq = collections.Counter(text) # 获取总字数 total_chars = sum(char_freq.values()) # 打印总字数 print(f"文件'{file_path}'共有 {total_chars} 字") # 计算并存储频率分布 freq_dist = dict(char_freq) freq_dist = sorted(freq_dist.items(), key=lambda x: x[1], reverse=True)[:1000] # 绘制频率分布图 plt.figure(figsize=(10, 6)) plt.bar([i for i in range(1, len(freq_dist) + 1)], [v for _, v in freq_dist]) plt.xlabel('词汇序号') plt.ylabel('频率') plt.title('前1000个高频词汇的频率分布') plt.xticks(rotation=45) # 旋转标签以避免重叠 plt.show() ``` 请确保在运行此代码之前已经安装了`matplotlib`库,如果没有安装可以使用`pip install matplotlib`命令来安装。这个代码会计算文件中的字符频率,显示总字数,并生成一个展示前1000个高频词汇的频率分布图。 注意:由于这是一个文本处理示例,我们这里只统计字符(包括汉字、英文字符等)。如果想要根据单词而非字符统计,需要先对文本进行分词处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值