首页 > 解决方案 > Matplotlib 图未显示在 Jupyter 笔记本第一个单元格的输出小部件中

问题描述

我在 Jupyter 笔记本的第一个单元格中有以下片段:

import matplotlib.pyplot as plt
import pandas as pd
import ipywidgets as widgets
import numpy as np

out = widgets.Output()
data = pd.DataFrame(np.random.normal(size = 50))
plt.ioff()
with out:
    fig, axes = plt.subplots()
    data.hist(ax = axes)
    display(fig)
plt.ion()    
display(out)

如果我重新启动内核并运行第一个单元,我会看到以下输出:

<Figure size 640x480 with 1 Axes>

但是,如果我第二次运行第一个单元格,我会看到我想要的 matplotlib 图。如果我将 matplotlib 导入后的所有内容移动到第二个单元,重新启动内核并重新运行整个笔记本,也会出现这种行为。

这种行为差异是故意的吗?

标签: matplotlibjupyter-notebook

解决方案


重新排列和添加魔术命令“%matplotlib notebook”的代码对我有用。

%matplotlib notebook
import matplotlib.pyplot as plt
import pandas as pd
import ipywidgets as widgets
import numpy as np

out = widgets.Output()

plt.ioff()
fig, axes = plt.subplots()
plt.ion()

data = pd.DataFrame(np.random.normal(size = 50))
data.hist(ax = axes)

display(out)

with out:
    display(fig)

推荐阅读