IPython中的透明内联matplotlibs

时间:2014-04-07 07:07:16

标签: matplotlib ipython ipython-notebook

我希望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版本。这必须是以某种方式,对吗?任何你可以流下的灯都会受到赞赏。

2 个答案:

答案 0 :(得分:2)

为了跟进,tillsten在Github上打开的问题已修补,如下所示:

rcParams['figure.facecolor'] = (0,0,0,0)
更新IPython后,

现在应该可以正常工作。为开源提供三种欢呼。

答案 1 :(得分:0)

内联图是带有类<img>的html对象(ui-resizable)。因此,您可以通过自定义笔记本的CSS来更改其默认行为:

  1. 找到笔记本的设置:在终端中输入

    ipython locate
    
  2. 在指定的目录中,转到子目录profile_default\static\custom(或您想要使用的任何个人资料)

  3. 编辑或创建名为custom.css

  4. 的CSS文件
  5. 把它放进去:

    img.ui-resizable
    {
    opacity:0.4;
    }
    
  6. 关闭笔记本电脑,杀死IPython并重新启动它(以便重新创建服务文件)。

    它应该适用于导出的笔记本,只要您将它们导出为html并在那里更改css。

    这不完全是你想要的,但它确实起到了作用。