如何更改剧情背景颜色?

我正在matplotlib散点图,需要改变实际阴谋的背景为黑色。 我知道如何改变剧情的脸色使用:

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

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

如果已经有axes对象,例如如果使用了f, ax = plt.subplot()plt.subplots() ,或者只能通过ax = plt.gca()获取当前轴,则可以直接使用它的方法, set_facecolor

 ax.set_facecolor('red') ax.set_facecolor((1, 0, 0)) 

像这样的东西? 使用axisbg关键字来axisbg

 >>> from matplotlib.figure import Figure >>> from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas >>> figure = Figure() >>> canvas = FigureCanvas(figure) >>> axes = figure.add_subplot(1, 1, 1, axisbg='red') >>> axes.plot([1,2,3]) [<matplotlib.lines.Line2D object at 0x2827e50>] >>> canvas.print_figure('red-bg.png') 

(当然,不是散点图,也不是黑色背景。)

在这里输入图像说明

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

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

这与Nick T的改变特定axes对象的背景颜色的方法相反。 如果要制作具有相似样式的多个不同图并且不想更改不同的axes对象,则重置默认值很有用。

注:相当于

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

从你的问题是:

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

如果你已经有了axes对象,就像在Nick T的答案中一样 ,你也可以使用

  ax.patch.set_facecolor('black') 

其他答案中的一个build议是使用ax.set_axis_bgcolor("red") 。 但是,这是贬值。

还有build议使用ax.patch.set_facecolor("red") 。 虽然这工作正常,更简单的解决scheme是使用

ax.set_facecolor("red")