设置IPython Notebook内联图背景不透明

时间:2015-04-10 21:46:02

标签: python matplotlib ipython-notebook

在IPython Notebook 3中,当我使用Inline matplotlib后端时,浏览器中的png数字具有透明背景。

如何将其设置为白色?

最小例子:

%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1,2])

右键单击并保存图像,图像具有透明背景,我希望它是白色的。

更新 试图在figure.facecolor中设置matplotlibrc,但它仍显示透明的png:

import matplotlib
print("facecolor before:")
print(matplotlib.rcParams["figure.facecolor"])
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1,2])
print("facecolor after:")
print(matplotlib.rcParams["figure.facecolor"])

此代码作为输出:

facecolor before:
1.0
facecolor after:
(1, 1, 1, 0)

2 个答案:

答案 0 :(得分:9)

假设透明的区域是围绕斧头(子图)的一切,你可以试试这个:

%matplotlib inline
import matplotlib.pyplot as plt
fig, ax = plt.subplots(facecolor='w')
ax.plot([1,2])

如果您希望永久保留数字中的白色背景,则需要修改matplotlibrc文件(位于.matplotlib\下的主文件夹中),更改这些参数:

figure.facecolor = 1

但是你总是可以通过传递facecolor来自动保存您想要的任何背景(与创建图形时无关):

fig.savefig('filename.png', facecolor='w', transparent=False)

答案 1 :(得分:0)

另一种选择是使用seaborn包。

,而不是设置facecolor

跑步:

import seaborn as sns

它会自动设置绘图背景,并为matplotlib提供更好的默认颜色。