【问题标题】:How to make plt.show() show figures in Jypyter?如何让 plt.show() 在 Jupyter 中显示数字?
【发布时间】:2020-04-21 05:24:50
【问题描述】:

我是 python 新手,我正在使用 matplotlib.pyplot 在 Jupyter 中绘制一些图形。 当我使用 plt.plot() 时,它只在一个图中显示一条线,但是当我尝试使用 plt.show() 在一个图中显示两条线时,什么都没有显示。它适用于 PyCharm,但我不知道为什么它不适用于 Jupyter Notebook。

import matplotlib.pyplot as plt
import numpy as np
X = np.linspace(-2, 2, 100)
y1 = X
y2 = X ** 2
plt.plot(X, y1, "g-")  # it shows y=x in one figure
plt.plot(X, y2, "b-")  # it shows y=x**2 in another figure
plt.show()  # nothing shows!!!

如何将这两行显示在一张图中?

【问题讨论】:

  • 尝试添加%matplotlib inline
  • 或者使用子图。
  • 您的图已经显示,这就是为什么 plt.show() 没有任何反应。将plt.show()plt.plot(...) 放在同一单元格中,以禁止出现括号中的字符。此外,如果您使用的是 Jupyter Notebook,请改用 Jupyter Lab,它是 Jupyter 的更新版本。在提示符下只需Jupyter Lab

标签: python matplotlib jupyter


【解决方案1】:

原因是您的代码使用了多个单元格。
尝试将所有代码放在一个单元格中。

至少

plt.plot(X, y1, "g-")  # it shows y=x in one figure
plt.plot(X, y2, "b-")  # it shows y=x**2 in another figure
plt.show()

在一个单元格中。 :)

【讨论】:

    【解决方案2】:

    您可以使用 IPython 的魔法声明(在 Jupyter 的引擎盖下运行),只需添加:

    %matplotlib inline
    

    在您的绘图之前的代码单元中(例如,在笔记本的最开头使用导入)。它会自动完成这项工作,您无需向每个图形发出 show 命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-26
      • 1970-01-01
      • 2022-10-17
      • 2018-07-02
      • 1970-01-01
      • 2014-03-08
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多