下面是解决Python pandas plot输出图形中显示中文乱码问题的完整攻略:
1. 确认matplotlib默认字体
Matplotlib是Python中最常用的绘图库之一,而在Matplotlib中绘制图形时,中文乱码的问题比较常见,因为默认情况下Matplotlib并没有指定中文字体。因此,我们需要先确认一下Matplotlib默认使用哪个字体。
在Python中,我们可以通过以下代码获取Matplotlib中默认字体的名称:
import matplotlib.pyplot as plt
print(plt.rcParams['font.family'])
运行以上代码,如果输出为['sans-serif']
,那么说明Matplotlib默认使用的是无衬线字体。如果要在Matplotlib中显示中文,我们要使用中文字体,可以通过以下步骤修改默认字体。
2. 设置字体为中文字体
我们首先需要准备一些中文字体文件,这里以微软雅黑字体为例。将下载好的微软雅黑字体文件(.ttf格式)放在Python环境的目录下,如C:\Windows\Fonts
。
在代码中我们可以通过以下方式告诉Matplotlib使用中文字体:
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Microsoft YaHei'
这样,我们就将Matplotlib的默认字体设置为了微软雅黑。如果你使用的是其他中文字体,需要将Microsoft YaHei
改成对应的字体名称。
3. 使用示例
下面是两个使用示例,分别是在折线图和柱状图中设置中文标签。
3.1 折线图
import pandas as pd
import matplotlib.pyplot as plt
# 用pandas读取数据
data = pd.read_csv('data.csv', encoding='utf-8')
# 将默认字体设置为微软雅黑
plt.rcParams['font.family'] = 'Microsoft YaHei'
# 绘制折线图并设置中文标签
plt.plot(data['date'], data['value'])
plt.title('折线图示例')
plt.xlabel('日期')
plt.ylabel('值')
plt.xticks(rotation=45)
plt.show()
3.2 柱状图
import pandas as pd
import matplotlib.pyplot as plt
# 用pandas读取数据
data = pd.read_csv('data.csv', encoding='utf-8')
# 将默认字体设置为微软雅黑
plt.rcParams['font.family'] = 'Microsoft YaHei'
# 绘制柱状图并设置中文标签
plt.bar(data['name'], data['value'])
plt.title('柱状图示例')
plt.xlabel('名称')
plt.ylabel('值')
plt.xticks(rotation=45)
plt.show()
以上代码中,data.csv
是一个简单的示例数据(日期、名称、值三列),可以根据实际业务场景修改。在绘制图形之前,我们先将默认字体设置为了微软雅黑,然后便可以使用中文标签绘制饼图和柱状图了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决Python pandas plot输出图形中显示中文乱码问题 - Python技术站