Reputation: 201
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
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