在 matplotlib 图形上保存交互式系列 (html)
Saving interactive series on matplotlib figures (html)
我有一个交互式绘图示例(来自 matplotlib),我可以 select 从系列中选择要在绘图上显示的线条。这非常有效,但现在我想将其导出到 html。我可以使用 mpld3.save_html()
成功地做到这一点,但失去了系列 selection 的交互性。
这是代码
import numpy as np
import matplotlib.pyplot as plt, mpld3
from matplotlib.widgets import CheckButtons
t = np.arange(0.0, 2.0, 0.01)
s0 = np.sin(2*np.pi*t)
s1 = np.sin(4*np.pi*t)
s2 = np.sin(6*np.pi*t)
fig, ax = plt.subplots()
l0, = ax.plot(t, s0, visible=False, lw=2)
l1, = ax.plot(t, s1, lw=2)
l2, = ax.plot(t, s2, lw=2)
plt.subplots_adjust(left=0.2)
rax = plt.axes([0.05, 0.4, 0.1, 0.15])
check = CheckButtons(rax, ('2 Hz', '4 Hz', '6 Hz'), (False, True, True))
def func(label):
if label == '2 Hz': l0.set_visible(not l0.get_visible())
elif label == '4 Hz': l1.set_visible(not l1.get_visible())
elif label == '6 Hz': l2.set_visible(not l2.get_visible())
plt.draw()
check.on_clicked(func)
mpld3.save_html(fig, 'interactive_fig.html') #save to html here
plt.show()
有没有办法保持这种交互性???
我也尝试过用 pickle 保存,但仍然失去了系列互动。
无法在 mpld3
生成的 html 文件中保持 matplotlib.widget
交互性。这是因为 mpld3
生成的 javascript 在客户端运行,无法访问生成它的 Python 内核。
您可以使用 Static Interactive Widgets for IPython Notebooks 方法在 html 版本中实现类似 matplotlib
的交互性。
我有一个交互式绘图示例(来自 matplotlib),我可以 select 从系列中选择要在绘图上显示的线条。这非常有效,但现在我想将其导出到 html。我可以使用 mpld3.save_html()
成功地做到这一点,但失去了系列 selection 的交互性。
这是代码
import numpy as np
import matplotlib.pyplot as plt, mpld3
from matplotlib.widgets import CheckButtons
t = np.arange(0.0, 2.0, 0.01)
s0 = np.sin(2*np.pi*t)
s1 = np.sin(4*np.pi*t)
s2 = np.sin(6*np.pi*t)
fig, ax = plt.subplots()
l0, = ax.plot(t, s0, visible=False, lw=2)
l1, = ax.plot(t, s1, lw=2)
l2, = ax.plot(t, s2, lw=2)
plt.subplots_adjust(left=0.2)
rax = plt.axes([0.05, 0.4, 0.1, 0.15])
check = CheckButtons(rax, ('2 Hz', '4 Hz', '6 Hz'), (False, True, True))
def func(label):
if label == '2 Hz': l0.set_visible(not l0.get_visible())
elif label == '4 Hz': l1.set_visible(not l1.get_visible())
elif label == '6 Hz': l2.set_visible(not l2.get_visible())
plt.draw()
check.on_clicked(func)
mpld3.save_html(fig, 'interactive_fig.html') #save to html here
plt.show()
有没有办法保持这种交互性???
我也尝试过用 pickle 保存,但仍然失去了系列互动。
无法在 mpld3
生成的 html 文件中保持 matplotlib.widget
交互性。这是因为 mpld3
生成的 javascript 在客户端运行,无法访问生成它的 Python 内核。
您可以使用 Static Interactive Widgets for IPython Notebooks 方法在 html 版本中实现类似 matplotlib
的交互性。