How to change the face color of a plot using Matplotlib


Question

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..

edit:

A snip from my current code:

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

ax = plt.gca()

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

enter image description here

1
6
3/3/2011 2:12:28 PM

Accepted Answer

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')
show()
6
8/19/2014 3:30:55 AM

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

fig = plt.figure(num=None, figsize=(5, 10), dpi=80, facecolor='y', edgecolor='k')
ax = fig.add_subplot(111)
ax.set_axis_bgcolor("y")
ax.plot(x, y, color = 'g')

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon