我正在matplotlib中制作散点图,需要将实际图的背景更改为黑色。我知道如何改变面部颜色的情节使用:

fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')

我的问题是,这改变了情节周围空间的颜色。我如何改变实际的背景颜色的情节?


当前回答

我认为这可能对一些人有用:

如果你想改变图周围的背景颜色,你可以使用这个:

fig.patch.set_facecolor('white')

所以不要这样:

你会得到这个:

显然你可以设置任何你想要的颜色。

注:如果你不小心看不出两个图之间有任何区别,试着用暗模式查看StackOverflow。

其他回答

简单的回答是:

ax = plt.axes()
ax.set_facecolor('silver')

除了NickT的答案,你还可以通过设置为“none”来删除背景帧,如下所述:https://stackoverflow.com/a/67126649/8669161

import matplotlib.pyplot as plt
plt.rcParams['axes.facecolor'] = 'none'

最简单的事情可能是在创建图形时提供颜色:

fig1 = plt.figure(facecolor=(1, 1, 1))

or

fig1, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, facecolor=(1, 1, 1))

其他答案中的一个建议是使用ax.set_axis_bgcolor(“red”)。然而,这是不赞成的,并且不工作在MatPlotLib >= v2.0。

还有建议使用ax.patch.set_facecolor("red")(适用于MatPlotLib v1.5和v2.2)。虽然这很好,但对于2.0+版本,使用一个更简单的解决方案

ax set_facecolor(“红”)。

一种方法是在脚本中手动设置轴背景色的默认值(参见自定义matplotlib):

import matplotlib.pyplot as plt
plt.rcParams['axes.facecolor'] = 'black'

这与Nick T的方法形成对比,该方法改变了特定轴对象的背景颜色。如果你正在制作多个风格相似的不同图形,并且不想不断改变不同的轴对象,那么重置默认值是有用的。

注:相当于

fig = plt.figure()
fig.patch.set_facecolor('black')

你的问题是:

plt.rcParams['figure.facecolor'] = 'black'