我希望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版本。这必须是以某种方式,对吗?任何你可以流下的灯都会受到赞赏。
答案 0 :(得分:2)
为了跟进,tillsten在Github上打开的问题已修补,如下所示:
rcParams['figure.facecolor'] = (0,0,0,0)
更新IPython后,现在应该可以正常工作。为开源提供三种欢呼。
答案 1 :(得分:0)
内联图是带有类<img>
的html对象(ui-resizable
)。因此,您可以通过自定义笔记本的CSS来更改其默认行为:
找到笔记本的设置:在终端中输入
ipython locate
在指定的目录中,转到子目录profile_default\static\custom
(或您想要使用的任何个人资料)
编辑或创建名为custom.css
把它放进去:
img.ui-resizable
{
opacity:0.4;
}
关闭笔记本电脑,杀死IPython并重新启动它(以便重新创建服务文件)。
它应该适用于导出的笔记本,只要您将它们导出为html并在那里更改css。
这不完全是你想要的,但它确实起到了作用。