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

And*_*nca 7 python matplotlib ipython-notebook

在IPython Notebook 3中,当我使用Inlinematplotlib后端时,浏览器中的png图形具有透明背景.

如何将其设置为白色?

最小的例子:

%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1,2])
Run Code Online (Sandbox Code Playgroud)

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

更新 试图设置figure.facecolormatplotlibrc,但它仍然会显示一个透明的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"])
Run Code Online (Sandbox Code Playgroud)

此代码作为输出:

facecolor before:
1.0
facecolor after:
(1, 1, 1, 0)
Run Code Online (Sandbox Code Playgroud)

Pri*_*mer 11

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

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

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

figure.facecolor = 1
Run Code Online (Sandbox Code Playgroud)

但你总是可以为你节省你想要的任何背景(独立于它是什么时候创建的数字)的传球自动计算facecolor:

fig.savefig('filename.png', facecolor='w', transparent=False)
Run Code Online (Sandbox Code Playgroud)

  • 您也可以使用 matplotlib.rcParams 字典在代码中执行此操作。然而,奇怪的是,使用 `rcParams['figure.facecolor'] = 1` 并没有*工作*。它必须是`rcParams['figure.facecolor'] = 'w'` (3认同)
  • `plt.rc('figure', facecolor='w')` 为我工作。谢谢! (2认同)