The answer is not necessarily to restart the entire kernel.
If you reload the matplotlib module, it will work, too. Provided you use Python 3.6 like me, and you have import matplotlib.pyplot as plt
like me:
from importlib import reload
reload(plt)
%matplotlib notebook
It does the trick. Yes it is still a hack. At least this is an independent codecell you can use in the middle of the notebook. Switching back via %matplotlib inline
is not a problem.
You can also remove once imported names from the sys.modules list, then they get imported again when you call the import again.
import sys
sys.modules.pop('matplotlib')
from matplotlib import pyplot as plt
In many cases, that's a less good idea. But it might sometimes be the only straw to hold on.