我使用ipywidgets来显示进程的异步结果.
import ipywidgets as widgets
results = widgets.HTML()
display(results)
Run Code Online (Sandbox Code Playgroud)
它运行良好,结果显示正确,但是当保存笔记本时,小部件不再存在.有没有办法用笔记本保存它们?
使用interactive多个小部件非常简单,例如:
interactive(foo, w1=widget1, w2=widget2, ...)
Run Code Online (Sandbox Code Playgroud)
但是,我想使用VBox和HBox的组合以特定的方式布局这些小部件。问题是,如何与包装盒互动使用?
我尝试了几种方法,例如调用Box的小部件进行交互,然后显示Box本身,但这似乎不起作用。
如何配置ipywidgets长文本字符串的复选框,如下所示,
c = Checkbox(description=' this is some very long very long text',value=False)
Run Code Online (Sandbox Code Playgroud)
而不是让文本被挤压并包裹在周围的 Jupyter 笔记本中?
谢谢!
我想在一个jupyter笔记本中创建一个Image实例来响应点击事件 - 我们怎么能这样做?我还希望能够识别被点击的图像.使用按钮但不使用图像很简单.
有没有办法为 Jupyter Lab 创建扩展,我可以通过笔记本中的 Python 单元进行操作?
在 Jupyter Notebook 中,这可以通过 IPywidget 来实现,它具有 Python 后端和 Javascript 前端。这两者可以交互,因此我可以通过 Python 向 javascript 前端发送指令,反之亦然。
据我了解,这在 Jupyter Lab 中不再可能,因为他们禁用了通过 IPython 执行 javascript 的功能。建议创建 jupyterlab 扩展。是否可以通过 Python 代码控制这样的扩展,如果可以的话如何控制?
在一个简单的示例中,我想要一个侧边栏(如 TOC 扩展),其中包含一个文本框,我可以通过 Python 设置其文本。
我正在尝试结合使用 JupyterLab 和最新的 ipywidgets 来拥有一个基本的图形界面来探索一些数据。但是,我找不到为交互式绘图设置图形高度的方法
笔记本加载一些文件,然后用户可以使用小部件(在文本框下方的代码中)传递一些输入。最后,通过按下按钮,生成图形并传递给输出小部件。
这是示例代码:
import pandas as pd
import matplotlib.pyplot as plt
from IPython.display import clear_output, display
import ipywidgets as widgets
data = pd.read_csv('data.csv')
def show_results(input):
if 'fig' in locals():
del fig
with out:
clear_output(True)
fig, ax = plt.subplots(1, 1)
ax.axis('equal')
data.loc[input.value].plot(cmap='inferno_r', column='probability', ax=ax, legend=True)
plt.show()
input = widgets.Text(placeholder='input field', description='Input:')
showMe = widgets.Button(
description='Show me the results',
tooltip='Show me',
)
out = widgets.Output(layout = {
'width': '100%',
'height': '900px',
'border': '1px solid black'
})
showMe.on_click(show_results)
display(input) …Run Code Online (Sandbox Code Playgroud) 假设,我有以下代码:
from ipywidgets import interact, interactive
import ipywidgets as widgets
def f(x):
return x
interact(f, x=(0,10,1));
Run Code Online (Sandbox Code Playgroud)
由此产生的交互式滑块很好,但在水平长度方面非常小。当 x 的范围很大时,例如 0 - 1000,使用该滑块执行小步变得非常困难。如何增加滑块的长度?
如何得到执行的函数的输出on_click由ipywidgets.Button
功能外下一步使用?例如,我想a在每次点击后取回 的值以在 jupyter-notebook 的下一个单元格中使用。到目前为止,我只得到None.
from ipywidgets import Button
def add_num(ex):
a = b+1
print('a = ', a)
return a
b = 1
buttons = Button(description="Load/reload file list")
a = buttons.on_click(add_num)
display(buttons)
print(a)
Run Code Online (Sandbox Code Playgroud) 如何从“ipywidgets”更改用“interact_manual”创建的按钮标签?以及如何更改该按钮的大小和颜色?
这是我写的
from ipywidgets import interact,interact_manual
def HDI_vs_CrimeRate():
#do some thing here
interact_manual(HDI_vs_CrimeRate)
Run Code Online (Sandbox Code Playgroud)
这是按钮的样子: 1 感谢您的帮助
我正在使用pythreejs可视化一些 3D 模型。
在 Jupyter 笔记本上可视化模型时,一切都按预期进行。
但是当尝试将小部件嵌入 HTML 文档时,我面临两个问题:
这是重现错误的代码和上述问题的动画:
from ipywidgets import embed
from pythreejs import *
from IPython.display import display
base = Mesh(
BoxBufferGeometry(20, 0.1, 20),
MeshLambertMaterial(color='green', opacity=0.5, transparent=True),
position=(0, 0, 0),
)
cube = Mesh(
BoxBufferGeometry(10, 10, 10),
MeshLambertMaterial(color='green', opacity=0.5, transparent=False),
position=(0, 5, 0),
)
target = (0, 5, 0)
view_width = 600
view_height = 400
camera = CombinedCamera(position=[60, 60, 60], width=view_width, height=view_height)
camera.mode = 'orthographic'
lights = …Run Code Online (Sandbox Code Playgroud) ipywidgets ×10
python ×4
jupyter ×2
jupyter-lab ×2
python-3.x ×2
button ×1
matplotlib ×1
pythreejs ×1
three.js ×1