I've been playing around with Matplotlib and I can't figure out how to change the background colour of the graph, or how to make the background completely transparent.
If you just want the entire background for both the figure and the axes to be transparent, you can simply specify
transparent=True when saving the figure with
import matplotlib.pyplot as plt fig = plt.figure() plt.plot(range(10)) fig.savefig('temp.png', transparent=True)
If you want more fine-grained control, you can simply set the facecolor and/or alpha values for the figure and axes background patch. (To make a patch completely transparent, we can either set the alpha to 0, or set the facecolor to
'none' (as a string, not the object
import matplotlib.pyplot as plt fig = plt.figure() fig.patch.set_facecolor('blue') fig.patch.set_alpha(0.7) ax = fig.add_subplot(111) ax.plot(range(10)) ax.patch.set_facecolor('red') ax.patch.set_alpha(0.5) # If we don't specify the edgecolor and facecolor for the figure when # saving with savefig, it will override the value we set earlier! fig.savefig('temp.png', facecolor=fig.get_facecolor(), edgecolor='none') plt.show()