set IPython 笔记本内联绘图背景不透明

set IPython Notebook inline plots background not transparent

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

如何将其设置为白色?

最小示例:

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

右击保存图片,图片是透明背景,我希望它是白色的。

更新 试图在 matplotlibrc 中设置 figure.facecolor 但它仍然显示透明的 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)

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

%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)

另一个选项,而不是设置 facecolor,是使用 seaborn 包。

就运行:

import seaborn as sns

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