15

我刚刚升级到 IPython 1.0,新的笔记本界面表现得非常好。在我的屏幕上,它现在的默认宽度约为页面的 50%,这提高了可读性。但是,我经常使用较长的时间序列,我更喜欢尽可能宽地显示。

非常宽的图片只会向右延伸得更远。有没有办法将输出显示得更宽,然后默认以居中的方式展开?

附图显示了第一个单元格中的正常内联图,其宽度小于默认笔记本宽度。第二个地块更宽并向右扩展。这使我的屏幕的左四分之一未使用。

在此处输入图像描述

4

6 回答 6

12

我要做的是以下。这可能会有所帮助,但它也会创建一个渲染精美的笔记本。

看看这本关于贝叶斯统计的在线书籍。这真是太好了。

他们使用以下代码在笔记本末尾加载自定义 CSS:

from IPython.core.display import HTML
def css_styling():
    styles = open("custom.css", "r").read() #or edit path to custom.css
    return HTML(styles)
css_styling()

您可以在此处从书籍 github 存储库下载此自定义 CSS :将其放入 notebook 文件夹并调用上面的代码

还要注意他们漂亮的 matplotlibrc 文件。您可以更改调用此代码的绘图的外观。在笔记本的早期调用它,所有 matplotlib 绘图都会看起来很酷。

    import json
    s = json.load( open("bmh_matplotlibrc.json") )  #edit path to json file
    matplotlib.rcParams.update(s)

从 GITHUB下载 JSON 文件

于 2013-08-23T11:33:47.113 回答
11

简而言之,您有两种选择。两者都在 notebook 中添加 CSS 样式来实现效果:

  1. 全局 Jupyter CSS(影响所有笔记本)编辑或创建~/.jupyter/custom/custom.css并添加:

    .output_png {
        显示:表格单元格;
        文本对齐:居中;
        垂直对齐:中间;
    }
    
  2. 通过执行以下代码单元来修改当前笔记本的样式:

    from IPython.core.display import HTML
    HTML("""
    <style>
    .output_png {
        display: table-cell;
        text-align: center;
        vertical-align: middle;
    }
    </style>
    """)
    

请注意,在第一种情况下,没有<style></style>.

我更喜欢第二种选择,特别是如果我要共享笔记本(因为它是独立的)。

于 2016-06-17T18:49:49.580 回答
8

@tooblippe 给出的答案虽然改变了笔记本的风格,但并没有解决这个问题。但是,使用该解决方案的第一部分,您将能够实现图的居中。此解决方案适用于ipython==3.1.0. 对于包含 Jupyter 的更高版本,您可能需要编辑 的样式Jupyter

因此,解决方案是:您可以修改上述 css 文件或将此行添加到 ipython 文件夹中 ipython 环境的样式中:

    .output_png {
        display: table-cell;
        text-align: center;
        vertical-align: middle;
    }
于 2016-04-08T22:24:30.657 回答
4

vertical-align:middle对我不起作用。此外,在最新的 Jupyter(可能是其他的,但至少)中,有一个名为的类.prompt只占用页面左侧的空间。我能够使用这个来解决这两个问题:

.output_png {
    display: table-cell;
    text-align: center;
    margin:auto;
}
.prompt 
    display:none;
}  

只要知道设置display:none打开.prompt会导致所有in[]out[]显示消失,并且知道这就是您想要的。希望这会有所帮助。

于 2017-12-13T20:11:15.387 回答
2

发布的所有答案(在撰写本文时)似乎都不适用于 Jupyter Lab v3。

我没有更改 CSS for output_png,而是发现更改它为jp-RenderedImage我想要的。如果由于任何原因这改变或对您有所不同,只需检查元素并选择相关的类进行修改。

于 2021-02-26T20:11:47.647 回答
2

Jupyter Notebook中的绘图可以使用HTML CSS代码片段居中。

在中心对齐绘图的代码如下所示,通过使用此代码片段,所有绘图都可以在 Jupyter Notebook 中居中。

from IPython.core.display import HTML as Center

Center(""" <style>
.output_png {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
}
</style> """)
  • 确保您在代码单元中运行此代码片段,而不是在 Markdown 单元中。

在此处输入图像描述

于 2020-09-13T05:50:16.450 回答