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

matplotlib.subplots创建过慢(超20秒)问题排查求助

问题:Matplotlib plt.subplots在Ubuntu机器上创建图形耗时异常

我日常用Python和Matplotlib做大量数据科学后处理,最近碰到个怪事:两台配置完全一致的Ubuntu22.04机器(Python3.10.12),同一脚本在PC1运行正常,但PC2里plt.subplots()创建图形要25.9秒,PC1只需要0.8秒,后续绘图速度倒是正常。

已经试过这些排查手段:更换Matplotlib版本、检查pandas/numpy等依赖、切换后端(但没有其他可用后端),都没解决,求排查方向。

测试程序

import sys
print(f'python v{sys.version}')

import time
start = time.time()

import matplotlib
import matplotlib.pyplot as plt
v = matplotlib._version.version

end = time.time()
print(f'matplotlib.v{v} imported in {end-start:.1f} sec')
print(f'    (from {matplotlib.__file__})')

start = time.time()
backend = matplotlib.rcParams["backend"]
end = time.time()
print(f'backend {backend} identified in {end-start:.1f} sec')

start = time.time()
fig, ax = plt.subplots()
end = time.time()
print(f'plt.subplots called in {end-start:.1f} sec')

plt.show()

PC1运行结果

python v3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0]
matplotlib.v3.6.2 imported in 0.4 sec
    (from /volatile/home/XXXX/.local/lib/python3.10/site-packages/matplotlib/__init__.py)
backend GTK4Agg identified in 2.4 sec
plt.subplots called in 0.8 sec

PC2运行结果

python v3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0]
matplotlib.v3.6.3 imported in 0.4 sec
    (from /volatile/home/XXXX/.local/lib/python3.10/site-packages/matplotlib/__init__.py)
backend GTK4Agg identified in 2.2 sec
plt.subplots called in 25.9 sec
排查方向建议
  • 检查GTK4系统依赖:对比两台机器的GTK4相关包版本(用dpkg -l | grep gtk),比如libgtk-4-1、libgtk-4-bin等,确保PC2的依赖完整且版本匹配。
  • 测试无GUI后端:临时设置export MPLBACKEND=Agg后运行脚本,如果速度恢复,说明问题出在GTK4后端的GUI初始化环节。
  • 检查X11显示服务:若远程连接PC2,确认DISPLAY环境变量正常,尝试在本地终端运行脚本,排除X11转发延迟问题。
  • 监控系统资源:运行脚本时用top/htop查看PC2的CPU、内存、磁盘IO占用,排查是否有进程阻塞资源。
  • 重置Matplotlib配置:删除PC2的~/.config/matplotlib/目录,恢复默认配置后测试。
  • 优化字体加载:在脚本开头添加plt.rcParams['font.family'] = 'DejaVu Sans',指定单一字体,排查字体扫描慢的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:10:14