【问题标题】:How to draw graphics dynamically on jupyterlab notebook如何在 jupyterlab notebook 上动态绘制图形
【发布时间】:2020-11-27 07:42:59
【问题描述】:

我找到了一个可以在我的笔记本电脑上正常运行的例子,但是有一个问题。绘制完成后,将再次绘制重复的结果图。我想知道如何不显示最后一个重复的图像。

import numpy as np
import matplotlib
%matplotlib inline
import matplotlib.pyplot as plt

# set up matplotlib
is_ipython = 'inline' in matplotlib.get_backend()
if is_ipython:
    from IPython import display

plt.ion()

def plot_durations(y):
    plt.figure(2)
    plt.clf()
    plt.subplot(211)
    plt.plot(y[:,0])
    plt.subplot(212)
    plt.plot(y[:,1])

    if is_ipython:
        display.clear_output(wait=True)
        display.display(plt.gcf())
        
x = np.linspace(-10,10,10)
y = []
for i in range(len(x)):
    y1 = np.cos(i/(3*3.14))
    y2 = np.sin(i/(3*3.14))
    y.append(np.array([y1,y2]))
    plot_durations(np.array(y))

plt.ioff() 
plt.show() 

【问题讨论】:

    标签: matplotlib dynamic


    【解决方案1】:

    在代码末尾用plt.close() 替换plt.show() 将防止jupyter notebook 显示两次最终绘图。包含解释here

    【讨论】:

      猜你喜欢
      • 2019-10-14
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      • 2012-08-28
      相关资源
      最近更新 更多