2016-10-19 7 views
8

は私がmatplotlibのipywidgets IPython(のpython3)でを使用してインタラクティブなプロットを実装したいです。だから、私はこれを効率的にやり遂げることができます(遅滞なくスムーズに変更できます)。インタラクティブmatplotlibの使用ipywidgets

もう1つの質問は、このコードが動作する理由です。

from ipywidgets import * 
import numpy as np 
import matplotlib.pyplot as plt 
%matplotlib inline 

x = np.linspace(0, 2 * np.pi) 

def update(w = 1.0): 
    fig = plt.figure() 
    ax = fig.add_subplot(1, 1, 1) 
    ax.plot(x, np.sin(w * x)) 

    fig.canvas.draw() 

interact(update); 

enter image description here

しかし、これは動作しません!

from ipywidgets import * 
import numpy as np 
import matplotlib.pyplot as plt 
%matplotlib inline 

x = np.linspace(0, 2 * np.pi) 
fig = plt.figure() 
ax = fig.add_subplot(1, 1, 1) 
line, = ax.plot(x, np.sin(x)) 

def update(w = 1.0): 
    line.set_ydata(np.sin(w * x)) 
    fig.canvas.draw() 

interact(update); 

enter image description here

+0

2番目の例を使用する方法を見つけたことがありますか?私は今、同じ問題を抱えています。 – mdornfe1

答えて

2

第2のアプローチは、ノートブックバックエンド

%matplotlib notebook 

またはipympl有するために右です。

ただし、プロットを更新しないインラインバックエンドでは機能しません。

+1

私の場合、2番目の方法はノートブックバックエンドでは機能しません。グラフは全く表示されません。 – tfv

+0

私はipympl(別名jupyter-matplotlib)を使うことをお勧めします。これはノートブックのバックエンドを別のパッケージに分割したものです。分割の理由は、Jupyterのリリースサイクルがmatplotlibよりもずっと速いことです。 ipymplはこれをより良く追跡できるようにmatplotlibから分離されています。 – Quant

関連する問題