Bootstrap

彻底解决 macOS 下Matplotlib 中文显示乱码问题

彻底解决 macOS 下Matplotlib 中文显示乱码问题

  1. 在使用 Python 的 Matplotlib 库进行数据可视化时,中文字符的显示常常会出现乱码问题,尤其在 macOS 系统上。
  2. 在网上找了一大堆方法,花了很久,发现不是要安装各种字体就是要改配置,而且字体真的不好找也不好安装。

解决方案概述

  1. 安装支持中文的字体:确保系统中安装了支持中文的字体。本文列出的一般都是系统自带的。
  2. 配置 Matplotlib 使用这些字体:在 Matplotlib 中设置字体,以确保中文字符能够正确显示。
import matplotlib.pyplot as plt
import matplotlib

# 设置字体为支持中文的字体
matplotlib.rcParams['axes.unicode_minus'] = False  # 解决负号 '-' 显示为方块的问题
matplotlib.rcParams['font.family'] = 'Kaiti SC'  # 可以替换为其他字体
'''
以下是一些在 macOS 上支持中文的字体:
Kaiti SC(楷体 SC)
Hiragino Sans GB(华文黑体)
Songti SC(宋体 SC)
Heiti TC(黑体 TC)
PingFang HK(苹方 HK)
Arial Unicode MS(Arial Unicode MS
'''

以下代码展示了如何配置 Matplotlib 并绘制每种字体的样式示例:

import matplotlib.pyplot as plt
import numpy as np

# 字体列表
fonts = [
    'Kaiti SC',
    'Hiragino Sans GB',
    'Songti SC',
    'Heiti TC',
    'PingFang HK',
    'Arial Unicode MS'
]

# 创建一个图形
plt.figure(figsize=(10, 8))

# 绘制每种字体的样式
for i, font in enumerate(fonts):
    plt.subplot(len(fonts), 1, i + 1)
    plt.text(0.5, 0.5, f'示例文本 - {font}', fontsize=20, ha='center', va='center', fontfamily=font)
    plt.axis('off')  # 关闭坐标轴

plt.tight_layout()
plt.show()

在这里插入图片描述

;