Take the 2-minute tour ×

I just started using Matplotlib and am trying to change the color of the face color of a plot...

if I create the figure like this:

 plt.figure(num=None, figsize=(5, 10), dpi=80, facecolor='y', edgecolor='k')

only the boarder of the figure changes to yellow... What I would like is the boarder to be white and the plot to be yellow..


A snip from my current code:


ax = plt.gca()

ax.plot(x, y, color = 'g')

enter image description here

share|improve this question

2 Answers 2

up vote 3 down vote accepted

Is this what you want?

enter image description here

#!/usr/bin/env python
matplotlib gives you 4 ways to specify colors,

    1) as a single letter string, ala MATLAB

    2) as an html style hex string or html color name

    3) as an R,G,B tuple, where R,G,B, range from 0-1

    4) as a string representing a floating point number
       from 0 to 1, corresponding to shades of gray.

See help(colors) for more info.
from pylab import *

subplot(111, axisbg='darkslategray')
#subplot(111, axisbg='#ababab')
t = arange(0.0, 2.0, 0.01)
s = sin(2*pi*t)
plot(t, s, 'y')
xlabel('time (s)', color='r')
ylabel('voltage (mV)', color='0.5') # grayscale color
title('About as silly as it gets, folks', color='#afeeee')
share|improve this answer
Why does this only work with subplot and not Figure? –  blz Mar 14 '13 at 10:29

Hm, you could try set_axis_bgcolor. Also, instead of using gca, try this, it's cleaner:

ax = fig.add_subplot(111)
ax.plot(x, y, color = 'g')
share|improve this answer
Thanks, that did the trick –  Richard Mar 3 '11 at 14:23
The example given by @Fábio shows that you can use the bgcolor keyword argument of the add_subplot method to achieve the same effect. –  Björn Pollex Mar 3 '11 at 14:25

Your Answer


