Javascript 将matplotlib滑块转换为网页

Javascript 将matplotlib滑块转换为网页,javascript,python,matplotlib,ipython,ipython-notebook,Javascript,Python,Matplotlib,Ipython,Ipython Notebook,我制作了许多Python脚本,允许用户使用matplotlib.widget(如滑块和单选按钮)探索方程 我想将这些模拟发送给我的同事,但他们都很忙,运行Python脚本对他们来说是一个不可逾越的障碍。所以,我希望能够以另一种格式发送我的程序,理想情况下,作为一个html页面,他们可以在浏览器中简单地打开,仍然可以使用滑块和按钮 起初,我非常兴奋地发现了像和这样的项目,它们确实允许您在iPython笔记本中嵌入交互元素。然而,这些要求将每个可能的绘图预先生成为图像。因此,如果我有许多滑块(我通常

我制作了许多Python脚本,允许用户使用matplotlib.widget(如滑块和单选按钮)探索方程

我想将这些模拟发送给我的同事,但他们都很忙,运行Python脚本对他们来说是一个不可逾越的障碍。所以,我希望能够以另一种格式发送我的程序,理想情况下,作为一个html页面,他们可以在浏览器中简单地打开,仍然可以使用滑块和按钮

起初,我非常兴奋地发现了像和这样的项目,它们确实允许您在iPython笔记本中嵌入交互元素。然而,这些要求将每个可能的绘图预先生成为图像。因此,如果我有许多滑块(我通常有10个以上的滑块并生成4个以上的绘图),那么文件将很快变得巨大

在web上有一个很好的交互式滑块演示,但是计算是由服务器完成的,我没有自己的web服务器。Bokeh还提供了选项,它生成一个html文件,它的工作方式与我想要的完全相同。然而,似乎我需要做所有的计算来更新Javascript中的绘图,我不知道Javascript。而且,如果我真的学习了Javascript,那么我似乎可以用它来制作绘图和滑块

但是我真的需要学习Javascript来做我想做的事情吗?简言之:我怎样才能使这个演示(改编自)成为任何人都可以查看的网页

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider

ax = plt.subplot(111)
plt.subplots_adjust(bottom=0.25)

t = np.arange(0.0, 1.0, 0.001)
a0 = 5; f0 = 3; o0 = 0
s = a0*np.sin(2*np.pi*f0*t + o0)
l, = ax.plot(t,s, lw=2, color='red')
ax.set_xlim(0,1)
ax.set_ylim(-10,10)

axAmp    = plt.axes([0.25, 0.15, 0.65, 0.03])
axFreq   = plt.axes([0.25, 0.10, 0.65, 0.03])
axOffset = plt.axes([0.25, 0.05, 0.65, 0.03])

sFreq   = Slider(axFreq,   'Freq',   0.1, 30.0, valinit=f0)
sAmp    = Slider(axAmp,    'Amp',    0.1, 10.0, valinit=a0)
sOffset = Slider(axOffset, 'Offset', -10,10,    valinit=o0)

def update(val):
    amp    =    sAmp.val
    freq   =   sFreq.val
    offset = sOffset.val
    l.set_ydata(amp*np.sin(2*np.pi*freq*t)+offset)
    plt.draw()

sFreq.on_changed(update)
sAmp.on_changed(update)
sOffset.on_changed(update)

plt.show()

有计划地使用。这是解决你的问题最简单的方法之一。使用d3.js,并且有很好的python API,在plotly中使用滑块,看起来您仍然需要在javascript中完成繁重的工作:也许您可以混合使用brython和js图表库来完成您想要的工作。看这个。这样你就不必直接编写js代码了。谢谢你的建议!那本笔记本里有一些非常漂亮的情节。我需要一段时间来消化所有这些信息,但乍一看,很多设置似乎仍在javascript中进行。是这样,还是可以避免js?@kikocorreoso尼斯笔记本。顺便说一句DanHickstein你有没有检查过它很旧。。可能与当前的jupyter笔记本电脑无关