【发布时间】:2026-01-06 23:55:01
【问题描述】:
我希望我的 matplotlib 绘图的背景在我的 IPython 笔记本中是透明的。这可能听起来很傻,因为笔记本本身默认为白色背景,但是:
1) 我使用日晒背景和
2) 更重要的是,当我通过 nbconvert 将笔记本直接嵌入我的博客时,我希望它们是透明的。
使用 savefig('file', transparent=True) 之类的东西很容易,但我没有保存数字,而是内联显示它们(通过使用 ipython notebook --matplotlib inline 调用 IPython。
我一直在使用 IPython 笔记本配置文件,尤其是 c.InlineBackend.rc。例如,我升级到 matplotlib 的开发版本以访问其新的savefig.transparent rcParam,并尝试使用c.InlineBackend.rc = {'savefig.transparent': True} 对其进行配置,但正如预期的那样,它只会影响使用savefig 保存的绘图。
请注意,我使用的是最新的 IPython 2.0 版本。这一定是可能的不知何故,对吧?您能提供的任何启发都将不胜感激。
【问题讨论】:
-
这些数字是通过直接嵌入在 html 中的 png 来显示的。您正在保存数据,ipython 只是对您隐藏它。您可能必须深入研究 ipython 代码才能找到保存位置并添加传递参数的功能。
-
我觉得你的第二种方法应该可行(设置 ipython rc 参数)。
-
@tillsten,我怀疑这意味着 IPython 在使用 matplotlib 内联时不会直接调用
savefig。也许它正在使用一些较低级别的功能?我会四处寻找并尝试找出答案,但希望对这些事情有更多了解的人知道他们的头脑。 -
我在ipython github页面上发布了一个问题,也许他们知道更多。我尝试了所有我能想到的方法(图形构造函数、rcparmas、ipython 配置),但无法设置为图形 facecolor。
标签: matplotlib ipython ipython-notebook