Monique Hendriks
Monique Hendriks

Reputation: 201

python matplotlib save graph without showing

I would like to create a histogram and save it to a file without showing it on the screen. The piece of code I have now is showing the figure by default and I cannot find any way to suppress showing the figure. I have tried pyplot.hist(nrs) as well, with the same problem.

import math, time, matplotlib.pyplot as plt, pylab; 
import numpy as np; 

nrs = [1.0, 2.0, 1.0, 3.0, 4.0]
freq,bins = np.histogram(nrs)
fig = plt.figure(figsize=(5,4), dpi=100); 
freq = np.append(freq, [0.0])
graph = fig.add_subplot(111);
x = graph.bar(bins, freq)

fig.savefig( "test.png")

Upvotes: 9

Views: 10109

Answers (1)

Monique Hendriks
Monique Hendriks

Reputation: 201

Thank you tcasewell, adding

import matplotlib
# Force matplotlib to not use any Xwindows backend.
matplotlib.use('Agg')

Before importing pyplot solved the problem.

Upvotes: 7

Related Questions