macOS运行seaborn、UMAP无报错但不显示可视化图表如何解决
问题根因
无报错不显示图表是matplotlib在macOS环境下默认后端渲染配置异常导致,seaborn、UMAP均基于matplotlib实现可视化,因此会出现相同的异常表现。
解决方案
- 临时验证方案
可在所有绘图相关代码的最开头添加后端指定代码,验证问题是否解决:
如果在iPython交互环境中使用,也可以先执行魔法命令import matplotlib # 两个后端二选一即可,优先测试TkAgg matplotlib.use('TkAgg') # matplotlib.use('MacOSX') import matplotlib.pyplot as plt # 后续保留原有绘图逻辑即可%matplotlib inline,开启后绘制的图表会直接输出在交互窗口中。 - 永久生效方案
首先运行以下代码获取matplotlib配置文件目录:
进入输出的目录,找到import matplotlib print(matplotlib.get_configdir())matplotlibrc文件,若文件不存在则直接新建,在文件中添加一行配置:
保存后重启Python/iPython环境即可永久生效。如果仅需要对单个虚拟环境生效,也可以修改对应虚拟环境路径下backend: TkAggsite-packages/matplotlib/mpl-data/matplotlibrc文件。 - 依赖缺失修复
若修改后端后出现找不到对应渲染后端的报错,说明当前环境缺少Tkinter依赖:
先通过Homebrew安装依赖:brew install tcl-tk,之后重新安装当前使用的Python版本即可。
内容的提问来源于stack exchange,提问作者marlon
相关产品推荐
相关产品推荐

