为了账号安全,请及时绑定邮箱和手机立即绑定

如何更改情节背景颜色?

如何更改情节背景颜色?

www说 2019-12-13 10:10:22
我正在matplotlib中制作散点图,需要将实际图的背景更改为黑色。我知道如何使用以下方法更改情节的脸色:fig = plt.figure()fig.patch.set_facecolor('xkcd:mint green')我的问题是,这会改变情节周围空间的颜色。如何更改绘图的实际背景颜色?
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

使用您通过以下方法之一创建set_facecolor(color)的axesobject方法:


您一起创建了图形和轴


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”外,所有颜色的字符串规格均不区分大小写。


查看完整回答
反对 回复 2019-12-13
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

像这样吗 使用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')

(授予的,不是散点图,也不是黑色背景。)


查看完整回答
反对 回复 2019-12-13
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

一种方法是在脚本中手动设置轴背景色的默认值(请参阅自定义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'


查看完整回答
反对 回复 2019-12-13
  • 3 回答
  • 0 关注
  • 642 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号