Answers:
使用对象的set_facecolor(color)
方法,axes
该方法是您通过以下方法之一创建的:
您一起创建了图形和轴
fig, ax = plt.subplots(nrows=1, ncols=1)
您创建了一个图形,然后再创建一个轴
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1) # nrows, ncols, index
您使用了有状态的API(如果您要做的事情不止几行,尤其是如果您有多个绘图,则上述面向对象的方法可以简化工作,因为您可以引用特定的图形,在某些轴上进行绘图并自定义要么)
plt.plot(...)
ax = plt.gca()
然后,您可以使用set_facecolor
:
ax.set_facecolor('xkcd:salmon')
ax.set_facecolor((1.0, 0.47, 0.42))
作为颜色的复习:
matplotlib.colors
Matplotlib可识别以下格式以指定颜色:
- 浮动值的RGB或RGBA元组
[0, 1]
(例如(0.1, 0.2, 0.5)
或(0.1, 0.2, 0.5, 0.3)
);- 十六进制RGB或RGBA字符串(例如
'#0F0F0F'
或'#0F0F0F0F'
);- 浮点值的字符串表示形式,
[0, 1]
包括灰度值(例如'0.5'
);- 之一
{'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'}
;- X11 / CSS4颜色名称;
- 来自xkcd颜色调查的名字; 前缀
'xkcd:'
(例如'xkcd:sky blue'
);- 其中之一
{'tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan'}
是“ T10”分类调色板中的Tableau颜色(这是默认颜色周期);- “ CN”颜色规范,即“ C”后跟一位数字,这是默认属性周期(
matplotlib.rcParams['axes.prop_cycle']
)的索引;该索引在艺术家创建时发生,如果循环不包含颜色,则默认为黑色。除“ CN”外,所有颜色的字符串规格均不区分大小写。
MethodNotFound
一种方法是在脚本中手动设置轴背景色的默认值(请参阅自定义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'
像这样吗 使用axisbg
关键字subplot
:
>>> 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')
(授予的,不是散点图,也不是黑色背景。)
plt.subplot('111', axisbg='black')
在使用Windows绘制命令之前,我取得了成功。
axis_bg
axis_bgcolor
是在matplotlib 2.0.0弃用,除去在matplotlib 2.2.0
如果您已经有了axes
对象,就像Nick T的答案一样,您也可以使用
ax.patch.set_facecolor('black')
其他答案中的一个建议是使用ax.set_axis_bgcolor("red")
。但是,此方法已被弃用,并且不适用于MatPlotLib> = v2.0。
还有建议使用ax.patch.set_facecolor("red")
(在MatPlotLib v1.5和v2.2上均可使用)。虽然这很好用,但对于v2.0 +来说,更简单的解决方案是使用
ax.set_facecolor("red")
ax.set_axis_bgcolor("black")
适用于Python v2.7.14 / MPL v1.5.1,但ax.set_facecolor()
不支持。在MPL v1.5.1和v2.2.0之间的某个位置,适当的功能已切换。
ax.patch.set_facecolor("red")
。matplotlib 2.0推荐的螺母为ax.set_facecolor
。
ax.patch.set_facecolor('black')
(ax
轴实例在哪里)。fig.patch
是图形背景,ax.patch
是轴背景。