Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change background color for scatter plot in matplotlib

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.

like image 635
Sg1team Avatar asked Oct 20 '25 17:10

Sg1team


1 Answers

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()
like image 88
bserra Avatar answered Oct 23 '25 14:10

bserra



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!