针对Python matplotlib绘图时汉字显示不正常的问题,完美解决方案如下。
问题背景
在Python matplotlib绘图时,如果要输出的图表中包含有中文字符,那么有可能会遇到中文字符显示异常的问题,例如显示乱码或者方框替代等。这是因为matplotlib默认的字体库中没有中文字体,因此需要做一些额外的设置才能正常显示中文字符。
解决方案
要解决Python matplotlib绘图时汉字显示不正常的问题,主要有两种方法:一种是指定中文字体,另一种是导入中文字体。具体操作步骤如下。
方法一:指定中文字体
通过指定中文字体的方式来解决中文字符显示异常问题,步骤如下:
- 导入matplotlib库
import matplotlib.pyplot as plt
- 指定中文字体
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"C:\Windows\Fonts\simsun.ttc", size=14)
这里指定中文字体为宋体,路径需自行设置。
- 在绘图时设置字体
plt.title("中文标题", fontproperties=font)
plt.xlabel("中文x轴", fontproperties=font)
plt.ylabel("中文y轴", fontproperties=font)
这里通过fontproperties参数来指定字体。
方法二:导入中文字体
通过导入中文字体的方式来解决中文字符显示异常问题,步骤如下:
- 导入matplotlib库
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
- 下载并安装中文字体
访问 https://github.com/anthony-wang/Fonts/tree/master/WinFonts 下载并安装中文字体。
- 加载中文字体
my_font = fm.FontProperties(fname=r"C:\Windows\Fonts\simsun.ttc")
这里通过FontProperties来加载中文字体。
- 在绘图时设置字体
plt.title("中文标题", fontproperties=my_font)
plt.xlabel("中文x轴", fontproperties=my_font)
plt.ylabel("中文y轴", fontproperties=my_font)
这里同样是使用fontproperties参数来指定字体。
示例说明
示例1:普通折线图
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
x = [1, 2, 3, 4, 5]
y = [5, 4, 3, 2, 1]
font = FontProperties(fname=r"C:\Windows\Fonts\simsun.ttc", size=14)
plt.plot(x, y, 'o-', label='折线图')
plt.title("普通折线图", fontproperties=font)
plt.xlabel("x轴", fontproperties=font)
plt.ylabel("y轴", fontproperties=font)
plt.legend()
plt.show()
这里通过指定中文字体的方式来解决中文字符显示问题。
示例2:饼状图
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
label_list = ['第一季度', '第二季度', '第三季度', '第四季度']
size_list = [20, 30, 40, 10]
my_font = fm.FontProperties(fname=r"C:\Windows\Fonts\simsun.ttc")
plt.pie(size_list, labels=label_list, autopct="%1.1f%%", startangle=90, counterclock=False, labeldistance=1.05, textprops={'fontproperties':my_font})
plt.title("饼状图", fontproperties=my_font)
plt.axis('equal')
plt.legend()
plt.show()
这里通过导入中文字体的方式来解决中文字符显示问题。
参考链接
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:完美解决Python matplotlib绘图时汉字显示不正常的问题 - Python技术站