在使用 matplotlib.pyplot 的时候在给图表加中文标题、说明的时候总会遇到中文显示乱码的情况,下面将彻底解决此类问题,并且是可以跨平台的,Windows、macOS、Linux 常用的中文字体名都放到里面了,找到哪个算哪个 :)
import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager
import platform
# -------- 开始
# 检查是否包含雅黑、黑体、仿宋、宋体
font_path = font_manager.findSystemFonts(fontpaths=None, fontext='ttf')
font_path = [f for f in font_path if any(font_name in f.lower() for font_name in ['msyh', 'simhei', 'heiti', 'simsun'])]
if font_path:
plt.rcParams['font.sans-serif'] = font_manager.FontProperties(fname=font_path[0]).get_name()
# -------- 结束
# 示例数据
categories = ['类别1', '类别2', '类别3', '类别4'] # 使用中文标签
values = [10, 20, 15, 30]
# 创建柱形图
plt.bar(categories, values)
# 设置标题和标签
plt.title('简单柱形图')
plt.xlabel('类别')
plt.ylabel('数值')
# 调整 y 轴刻度范围
plt.ylim(0, 35)
# 展示图形
plt.show()