Jupyter Notebook中Matplotlib交互式绘图缩放时出现黑线条问题
解决Matplotlib Notebook后端缩放时出现黑线条的问题
我之前也碰到过这个Matplotlib 2.1.x版本配合Jupyter Notebook后端的小bug!这是当时官方已知的渲染异常问题,给你几个可行的解决办法:
一、最彻底的解决:升级Matplotlib版本
这个黑线条的bug在Matplotlib 2.2.0及之后的版本里已经被官方修复了,直接升级就能根治问题。在终端执行以下命令:
pip install --upgrade matplotlib
升级完成后重启你的Jupyter Notebook,再尝试缩放操作,应该就不会出现黑线条了。
二、临时 workaround(不想升级时用)
如果暂时没法升级版本,可以试试这两个小技巧:
- 缩放完成后,点击绘图工具栏里的重置视图按钮(那个循环箭头的图标),黑线条会立刻消失;
- 在绘图代码里手动指定坐标轴范围,避免依赖自动渲染的边界计算,比如:
import numpy as np from numpy.random import random import matplotlib.pyplot as plt %matplotlib notebook x = random(100) y = random(100) plt.plot(x, y) # 手动设置坐标轴范围,给边界留一点余量 plt.xlim(min(x)-0.05, max(x)+0.05) plt.ylim(min(y)-0.05, max(y)+0.05) plt.show()
三、更换交互后端
如果升级后还是有异常(概率很低),可以试试更换Matplotlib的交互后端:
- 用
%matplotlib widget代替%matplotlib notebook(需要Matplotlib 3.1.0及以上版本支持,交互体验更流畅); - 若不需要交互性,也可以切换到
%matplotlib inline,不过这样就失去了缩放、平移等交互功能。
复现代码(Jupyter Notebook中):
import numpy as np from numpy.random import random import matplotlib.pyplot as plt %matplotlib notebook plt.plot(random(100), random(100)) plt.show()
内容的提问来源于stack exchange,提问作者dtailor
相关产品推荐
相关产品推荐

