我正在matplotlib中制作散点图,需要将实际图的背景更改为黑色。我知道如何改变面部颜色的情节使用:
fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')
我的问题是,这改变了情节周围空间的颜色。我如何改变实际的背景颜色的情节?
我正在matplotlib中制作散点图,需要将实际图的背景更改为黑色。我知道如何改变面部颜色的情节使用:
fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')
我的问题是,这改变了情节周围空间的颜色。我如何改变实际的背景颜色的情节?
当前回答
其他答案中的一个建议是使用ax.set_axis_bgcolor(“red”)。然而,这是不赞成的,并且不工作在MatPlotLib >= v2.0。
还有建议使用ax.patch.set_facecolor("red")(适用于MatPlotLib v1.5和v2.2)。虽然这很好,但对于2.0+版本,使用一个更简单的解决方案
ax set_facecolor(“红”)。
其他回答
如果你已经有坐标轴对象了,就像尼克T的答案一样,你也可以用
ax.patch.set_facecolor('black')
简单的回答是:
ax = plt.axes()
ax.set_facecolor('silver')
我认为这可能对一些人有用:
如果你想改变图周围的背景颜色,你可以使用这个:
fig.patch.set_facecolor('white')
所以不要这样:
你会得到这个:
显然你可以设置任何你想要的颜色。
注:如果你不小心看不出两个图之间有任何区别,试着用暗模式查看StackOverflow。
像这样的东西?使用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')
(当然,不是散点图,也不是黑色背景。)
最简单的事情可能是在创建图形时提供颜色:
fig1 = plt.figure(facecolor=(1, 1, 1))
or
fig1, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, facecolor=(1, 1, 1))