4

How do I change the background color of a scatter plot in matplotlib?

Currently I have

import matplotlib.pyplot as plt
plt.scatter(X, Y, c=T, marker='o', s=(0.005*r), linewidth=0, cmap=cm.coolwarm)
plt.scatter(X_stars, Y_stars, marker='o', s=(0.00000005*r), color='white')

plt.savefig(filename, format='ps')

I want the background to be black, not white. I already changed facecolor and edgecolor to black, but without the desired effect. Setting transparent=True made it transparent so that I could change the background in Photoshop, but it must work in matplotlib as I have a very large number of plots.

1
  • If you want to use the state-machine interface, you can add plt.gca().set_axis_bgcolor('black') after the calls to plt.scatter Commented Aug 2, 2013 at 9:28

1 Answer 1

11

EDIT: As mentionned by endolith in the comments axisbg was deprecated in version 2.0 of matplotlib. Use facecolor instead.

ax = fig.add_subplot(111, facecolor='black')

You could use the axisbg argument of the add_subplot method. Here's a little example:

import matplotlib.pyplot as plt

a = random(100)*10
b = range(100)
fig = plt.figure(1)
ax = fig.add_subplot(111, axisbg='black')
ax.scatter(a,b)
fig.canvas.draw()
Sign up to request clarification or add additional context in comments.

1 Comment

It's now called facecolor

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.