You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib中调用在线Nanum Gothic韩文字体失效问题求助

解决Matplotlib韩文字体不生效的问题

你当前的核心错误是:把CSS样式表的URL传给font_manager.FontProperties(fname=...)——这个参数需要的是本地字体文件路径/可读取的字体二进制流,而不是网页CSS链接。Matplotlib的字体管理器无法解析CSS中的字体加载逻辑,所以才会提示字体不包含对应Unicode字符,最终显示空白。

下面是两种可行的解决方法:

方法一:直接加载在线字体文件(临时生效)

通过下载字体的TTF文件二进制流,直接传给FontProperties,不用保存到本地:

import matplotlib.pyplot as plt
from matplotlib import font_manager
import requests
from io import BytesIO

# 下载Nanum Gothic的TTF字体文件
font_url = "https://fonts.gstatic.com/s/nanumgothic/v27/PN_3Rfi-oW3hYwmKDpxS7F_D-djb.ttf"
response = requests.get(font_url)
font_file = BytesIO(response.content)

# 加载字体
font_prop = font_manager.FontProperties(fname=font_file)

# 测试绘图
plt.text(0.5, 0.5, "안녕하세요! Matplotlib 한글 테스트", fontproperties=font_prop, fontsize=15)
plt.show()

方法二:全局设置默认字体(永久生效,更方便)

如果不想每次绘图都手动指定字体,可将Nanum Gothic设为Matplotlib默认字体,同时解决负号显示方块的问题:

import matplotlib.pyplot as plt
from matplotlib import font_manager
import requests
import os

# 字体保存到Matplotlib自动扫描的目录
font_dir = os.path.join(os.path.expanduser("~"), ".matplotlib", "fonts", "ttf")
os.makedirs(font_dir, exist_ok=True)
font_path = os.path.join(font_dir, "NanumGothic.ttf")

# 下载字体到本地(仅第一次运行时下载)
if not os.path.exists(font_path):
    font_url = "https://fonts.gstatic.com/s/nanumgothic/v27/PN_3Rfi-oW3hYwmKDpxS7F_D-djb.ttf"
    response = requests.get(font_url)
    with open(font_path, "wb") as f:
        f.write(response.content)

# 刷新字体缓存,让Matplotlib识别新字体
font_manager._load_fontmanager(try_read_cache=False)

# 全局配置字体
plt.rcParams["font.family"] = "Nanum Gothic"
plt.rcParams["axes.unicode_minus"] = False  # 避免负号显示为方块

# 测试绘图
plt.title("한글 제목 테스트")
plt.xlabel("X축 라벨")
plt.ylabel("Y축 라벨")
plt.plot([-1, 2, 3], [4, 5, -6])  # 验证负号显示
plt.show()

注意事项

  • 确保已安装requests库,未安装则执行pip install requests
  • 若仍显示空白,可尝试更换Nanum系列的其他字体(比如粗体版本NanumGothicBold.ttf,对应URL为https://fonts.gstatic.com/s/nanumgothic/v27/PN_oRfi-oW3hYwmKDpxS7F_LQv3LyVsj.ttf)
  • 部分系统可能需要重启Python环境,才能让字体缓存刷新生效

内容的提问来源于stack exchange,提问作者qiannianchong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 04:31:19