如何使用Matplotlib改变绘图的面部颜色

9
我刚开始使用Matplotlib,正试图更改绘图的面颜色...
如果我像这样创建图形:
 plt.figure(num=None, figsize=(5, 10), dpi=80, facecolor='y', edgecolor='k')

只有图形的边界变成了黄色…… 我想要的是边界为白色,绘图为黄色。
编辑:
我目前代码的一部分:
plt.figure(num=None, figsize=(5, 10), dpi=80, facecolor='y', edgecolor='k')  

ax = plt.gca()

ax.plot(x, y, color = 'g')

enter image description here


注意!对于3D图形,您可以使用ax.xaxis.pane.fill = False或设置pane的颜色。 - undefined
2个回答

9

嗯,你可以尝试使用set_axis_bgcolor。另外,不要使用gca,这个更加清晰:

fig = plt.figure(num=None, figsize=(5, 10), dpi=80, facecolor='y', edgecolor='k')
ax = fig.add_subplot(111)
ax.set_axis_bgcolor("y")
ax.plot(x, y, color = 'g')

@Fábio 给出的示例表明,您可以使用add_subplot方法的bgcolor关键字参数来实现相同的效果。 - Björn Pollex

6

这是你想要的吗?这里有更多相关内容。

在此输入图片描述

#!/usr/bin/env python
"""
matplotlib gives you 4 ways to specify colors,

    1) as a single letter string, ala MATLAB

    2) as an html style hex string or html color name

    3) as an R,G,B tuple, where R,G,B, range from 0-1

    4) as a string representing a floating point number
       from 0 to 1, corresponding to shades of gray.

See help(colors) for more info.
"""
from pylab import *

subplot(111, axisbg='darkslategray')
#subplot(111, axisbg='#ababab')
t = arange(0.0, 2.0, 0.01)
s = sin(2*pi*t)
plot(t, s, 'y')
xlabel('time (s)', color='r')
ylabel('voltage (mV)', color='0.5') # grayscale color
title('About as silly as it gets, folks', color='#afeeee')
show()

1
仅作更新,axisbg参数已被弃用,替换为facecolor - Brad Campbell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接