여러 개의 매개 변수로 일부 플롯을 만들어야하고 매트 플롯 슬라이더로 더 대화식으로 만들도록 선택했습니다. 내 실제 작업 전에 어떤 연습을 위해 나는 그것을 상대적으로 간단하게 만들려고했지만 슬라이더는 작동하지 않는다. 다음은 here에서 영감을받은 코드입니다.Martplotlib 슬라이더가 작동하지 않습니다.
코드 :
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.widgets as mw
from scipy import stats
mu = 1
sigma = 3
a = 2
b = 3
axis_color = 'lightgoldenrodyellow'
x = [i for i in range(-100,100,1)]
normal_pdf = stats.norm.pdf(x, mu, sigma)
a_normal_pdf = [i*a for i in normal_pdf]
ab_normal_pdf = [i*b*a for i in normal_pdf]
fig = plt.figure()
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(223)
ax4 = fig.add_subplot(224)
ax4.axis('off')
#sliders
a_slider_ax = fig.add_axes([0.6, 0.25, 0.25, 0.03], axisbg=axis_color)
a_slider = mw.Slider(a_slider_ax, 'a', 1, 100, valinit = a)
b_slider_ax = fig.add_axes([0.6, 0.4, 0.25, .03], axisbg = axis_color)
b_slider = mw.Slider(b_slider_ax, 'b', 1, 100, valinit = b)
#function for sliders
def sliders_on_change(val):
a_normal_pdf.set_ydata([x*a_slider for x in normal_pdf])
ab_normal_pdf.set_ydata([x*a_slider*b_slider for x in normal_pdf])
fig.canvas.draw_idle()
a_slider.on_changed(sliders_on_change)
b_slider.on_changed(sliders_on_change)
ax1.plot(x, normal_pdf, 'r-')
ax2.plot(x, a_normal_pdf, 'bo')
ax3.plot(x, ab_normal_pdf, 'g*')
plt.show()
나는 완전히 내가뿐만 아니라 스파이더와 jupyter에 차이가 그것을 시도하지 않기 때문에 슬라이더, here로 대신 유휴 문제 때문에 그것의 아마 문제를 작동하는 방법을 이해하지 않습니다. 슬라이더로 이동할 수는 있지만 a_normal_pdf
또는 ab_normal_pdf
을 변경할 수 없습니다.
큰 답변이지만, p1, = *** 및 p1 = ***의 차이점은 무엇입니까? 쉼표는 무엇을합니까? – Bobesh
@Bobesh 튜플에 결과를 할당 할 수 있습니다 (이 질문은 [파이썬 코드입니다. 쉼표 연산자입니까?] (http://stackoverflow.com/questions/16037494/python-code-is-it-comma-operator) – user2314737