tkinter.TclError: couldn't connect to display "localhost:18.0"
The problem is that you are using an interactive backend which is trying to create figure windows for you, which are failing because you have disconnected the x-server that was available when you started the simulations.
Change your imports to
import matplotlib
matplotlib.use('pdf')
import matplotlib.pyplot as plt
Generate images without having a window appear (background)
use a non-interactive backend (see What is a backend?) such as Agg
(for PNG
s), PDF
, SVG
or PS
. In your figure-generating script, just call the matplotlib.use()
directive before importing pylab
or pyplot
:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.plot([1,2,3])
plt.savefig('myfig')
Note: This answer was in short mentioned in a comment. I put it here as an answer to increase visibility since it helped me and I was lucky enough that I decided to read the comments.