ipython-notebook - 默认情况下,iPython Notebook svg数字

标签 ipython-notebook

我刚开始使用ipython,并且正在创建如下图:

fig, axes = plt.subplots()
xs = range(0,100)
axes.plot(xs, [x*x for x in xs], 'r')

我知道这些数字可以呈现为svg,请参见here。不幸的是,这些图总是被渲染成光栅图像。当我使用笔记本的缩放功能时,光栅化的图像变得非常难看。有没有一种方法可以更改此行为,从而默认情况下将数字显示为svg?

最佳答案

您可以在ipython配置文件配置文件中更改默认图形格式。我所做的是使用以下命令为笔记本服务器创建了一个配置文件:

ipython profile create nbserver

在命令行。这会在~/.ipython/profile_nbserver下创建一堆文件,其中几乎包含您可能要更改的每个设置的示例行(取决于操作系统,它可能位于~/.config/ipython之类的位置,而不是确定它在Windows下的位置)。您需要查看文件ipython_notebook_config.py。然后,您应该添加以下行:
c.InlineBackend.figure_formats = ['svg']

请注意,这仅适用于IPython 3.x,并且您还可以根据@HarrySchreiner的注释指定其他格式。对于IPython 2.x,您应该设置c.InlineBackEnd.figure_format='svg'。要使用此配置文件,您应该使用以下命令启动笔记本
ipython notebook --profile=nbserver

如果这很麻烦,请在运行create时不要提供配置文件名称,而是修改默认配置文件。

另外,您可能需要排队
c.IPKernelApp.matplotlib = 'inline'

这样每个笔记本将自动从使用的matplotlib内联后端开始。

最初我也想使用svg后端而不是png来启用缩放等。但是,我发现某些图,例如带有大量点的pcolor,只会在使用svg后端时杀死我的浏览器。因此,我发现使用png更容易,并且如果需要,可以使用xlimylim命令手动放大。

另外,您绝对应该调整c.InlineBackend.rc行,以为图形尺寸和所使用的字体设置更合理的默认值。

编辑

当前推荐的最佳实践不是使用pylab,而是显式地导入matplotlibnumpy,因此我修改了答案以不再鼓励这样做。请参阅此帖子,了解以下原因:

http://carreau.github.io/posts/10-No-PyLab-Thanks.html

另外,如果对于特定的绘图元素(例如pcolorplot_surface),svg渲染太慢,则可以将rasterized=True选项传递给这些绘图命令。这意味着图的那些特定部分将具有基于像素的快速渲染,但是所有其他图元素将被很好地矢量化。

关于ipython-notebook - 默认情况下,iPython Notebook svg数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17582137/

相关文章:

ipython - 如何获取 jupyter notebook 内核状态?

ipython - `get_ipython' 在 IPython/IPython Notebook 的启动脚本中不起作用...?

python - 在 ipython 笔记本上找不到模块

vim - 在外部编辑器中编辑IPython单元

Jupyter Notebook 中的 Octave 语法突出显示

jupyter-notebook - Ipython notebook 不会在命令行上启动

python - 如何更改 ipython 笔记本的默认配色方案?

python - IPython Notebook 和 Pandas 自动完成

macos - 通过双击 osx 打开 ipython notebook

python - ipython 笔记本水平排列图