标签: ipywidgets

HTML ipywidgets状态不会随笔记本一起保存

我使用ipywidgets来显示进程的异步结果.

import ipywidgets as widgets

results = widgets.HTML()
display(results)
Run Code Online (Sandbox Code Playgroud)

它运行良好,结果显示正确,但是当保存笔记本时,小部件不再存在.有没有办法用笔记本保存它们?

jupyter-notebook ipywidgets

8
推荐指数
1
解决办法
558
查看次数

如何与包含小部件的Box交互使用?

使用interactive多个小部件非常简单,例如:

interactive(foo, w1=widget1, w2=widget2, ...)
Run Code Online (Sandbox Code Playgroud)

但是,我想使用VBox和HBox的组合以特定的方式布局这些小部件。问题是,如何与包装盒互动使用?

我尝试了几种方法,例如调用Box的小部件进行交互,然后显示Box本身,但这似乎不起作用。

ipywidgets

7
推荐指数
1
解决办法
2771
查看次数

如何为复选框小部件获取更宽的文本?

如何配置ipywidgets长文本字符串的复选框,如下所示,

 c = Checkbox(description=' this is some very long very long text',value=False)
Run Code Online (Sandbox Code Playgroud)

而不是让文本被挤压并包裹在周围的 Jupyter 笔记本中?

谢谢!

jupyter-notebook ipywidgets

7
推荐指数
1
解决办法
5204
查看次数

如何制作和ipywidget图像可点击?

我想在一个jupyter笔记本中创建一个Image实例来响应点击事件 - 我们怎么能这样做?我还希望能够识别被点击的图像.使用按钮但不使用图像很简单.

python jupyter jupyter-notebook ipywidgets

7
推荐指数
1
解决办法
1343
查看次数

如何使 JupyterLab 扩展与 Python 内核交互?

有没有办法为 Jupyter Lab 创建扩展,我可以通过笔记本中的 Python 单元进行操作?

在 Jupyter Notebook 中,这可以通过 IPywidget 来实现,它具有 Python 后端和 Javascript 前端。这两者可以交互,因此我可以通过 Python 向 javascript 前端发送指令,反之亦然。

据我了解,这在 Jupyter Lab 中不再可能,因为他们禁用了通过 IPython 执行 javascript 的功能。建议创建 jupyterlab 扩展。是否可以通过 Python 代码控制这样的扩展,如果可以的话如何控制?

在一个简单的示例中,我想要一个侧边栏(如 TOC 扩展),其中包含一个文本框,我可以通过 Python 设置其文本。

python jupyter jupyter-notebook ipywidgets jupyter-lab

7
推荐指数
1
解决办法
1416
查看次数

在 jupyter 实验室中使用交互式绘图时控制图形高度

我正在尝试结合使用 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)

matplotlib ipywidgets jupyter-lab

7
推荐指数
1
解决办法
2368
查看次数

如何增加 ipywidgets 中的滑块长度

假设,我有以下代码:

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,使用该滑块执行小步变得非常困难。如何增加滑块的长度?

python-3.x jupyter-notebook ipywidgets

7
推荐指数
2
解决办法
1502
查看次数

返回执行“on_click”函数的输出

如何得到执行的函数的输出on_clickipywidgets.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)

python-3.x jupyter-notebook ipywidgets

6
推荐指数
1
解决办法
3480
查看次数

如何从“ipywidgets”更改用“interact_manual”创建的按钮标签?以及如何更改该按钮的大小和颜色?

如何从“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 感谢您的帮助

python button jupyter-notebook ipywidgets

6
推荐指数
2
解决办法
3775
查看次数

使用 pythreejs 嵌入小部件:错误的视角和相机观察

我正在使用pythreejs可视化一些 3D 模型。

在 Jupyter 笔记本上可视化模型时,一切都按预期进行。

但是当尝试将小部件嵌入 HTML 文档时,我面临两个问题:

  • 似乎相机在加载时正在查看 (0, 0, 0),而不是按预期,一旦您与小部件交互,相机将“跳跃”并开始查看预期坐标
  • 投影(ortographic摄像机模式)丢失太

这是重现错误的代码和上述问题的动画:

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)

python three.js jupyter-notebook ipywidgets pythreejs

6
推荐指数
1
解决办法
455
查看次数