본문 바로가기
파이썬

파이썬 Jupyter 노트북 : 위젯이있는 대화 형 플롯

by º기록 2020. 10. 20.
반응형

위젯에 의존하는 대화 형 플롯을 생성하려고합니다. 내가 가진 문제는 슬라이더를 사용하여 매개 변수를 변경하면 이전 플롯 이후에 새 플롯이 수행되는 대신 매개 변수에 따라 하나의 플롯 만 변경 될 것으로 예상한다는 것입니다.

예 :

from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets

import matplotlib.pyplot as plt
%matplotlib inline

import numpy as np

def plot_func(freq):
    x = np.linspace(0, 2*np.pi)
    y = np.sin(x * freq)
    plt.plot(x, y)

interact(plot_func, freq = widgets.FloatSlider(value=7.5,
                                               min=1,
                                               max=5.0,
                                               step=0.5))

슬라이더를 4.0으로 이동 한 후 다음을 수행했습니다.


슬라이더를 움직일 때 그림 하나만 변경하고 싶습니다. 이것을 어떻게 달성 할 수 있습니까?

(Python 2.7, matplotlib 2.0을 사용하고 있으며 노트북과 jupyter를 최신 버전으로 업데이트했습니다. 추가 정보가 필요하면 알려주세요.)

 

해결 방법

 

그림을 변경하려면 새 그림을 만드는 대신 다음 방법을 제안 할 수 있습니다.

따라서 코드는 다음과 같이 보일 수 있습니다.

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

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_idle()

interact(update);



 

참조 페이지 https://stackoverflow.com/questions/44329068

 

 

반응형

댓글