配置Ipython后端以使用代码的高清模式

16

我正在使用代码配置Jupyter笔记本,因为我有很多笔记本的存储库,想要在所有笔记本中保持样式一致性,而不必在每个笔记本开头写入冗长的设置。这样做的方式是创建一个方法来配置CSS、一个用于设置Matplotlib和一个用于配置Ipython。

我之所以这样配置我的笔记本,而不像文档所述依赖于配置文件,原因如下:

  1. 我要公开共享这个笔记本的存储库,并希望所有的配置都是可见的
  2. 我想将这些配置保持特定于我所创建的这个存储库

例如,设置CSS的方法如下:

def set_css_style(css_file_path='../styles_files/custom.css'):

    styles = open(css_file_path, "r").read()
    return HTML(styles)

我在每个笔记本的开头调用set_css_style()。同样,我还有这个方法来配置Ipython的具体内容:

def config_ipython():

    InteractiveShell.ast_node_interactivity = "all"

以上两种均使用imports

from IPython.core.display import HTML
from IPython.core.interactiveshell import InteractiveShell

目前可以看到,配置Ipython的方法仅包含指令:当我在单元格中的多行中键入变量名称时,无需添加print即可打印所有内容。

我的问题是如何将Jupyter魔法命令转换为代码,以获得视网膜显示质量的图像。此类命令为:

%config InlineBackend.figure_format = 'retina'

从Ipython的文档中,我找不到如何在方法中调用此指令,也就是找不到InlineBackend的位置。

我只想将此配置行添加到我的config_ipython方法中,这可能吗?

1个回答

25
有一个Python API可以做到这一点:
import matplotlib_inline
matplotlib_inline.backend_inline.set_matplotlib_formats('retina')

使用旧版本(IPython 7或8)的方法是使用以下内容,但现在已被弃用:
from IPython.display import set_matplotlib_formats
set_matplotlib_formats('retina')

1
太棒了。出于好奇,你是怎么找到这个API的?我在文档中搜索了一下,但很难找到它。 - mar tin
1
我作弊了:我已经知道它叫什么,所以我可以在Sphinx文档中搜索准确的名称。在这里添加更多描述性文本到docstring将有助于其他人找到它。值得注意的是:“retina”没有列在其中,但它是可用选项之一。 - minrk
5
可能是因为@minrk是Jupyter项目的核心开发者。 - moiaussi06
我尝试过这样做,如果我在新标签页中打开它们,实际上会得到更大的图像,但是它们在笔记本中被缩小显示。有没有简单的方法可以将它们放大到100%缩放? - filippo
仍然可以正常工作。现在可能需要从其他地方导入:from matplotlib_inline.backend_inline import set_matplotlib_formats - webelo
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接