gpt4 book ai didi

python - 从笔记本中清除 Jupyter 笔记本中单元格的小部件区域

转载 作者:太空狗 更新时间:2023-10-30 02:55:19 26 4
gpt4 key购买 nike

我想知道是否可以从笔记本端(即在 Python 中)清除 Jupyter 笔记本中单元格的小部件区域。 IPython.display.clear_output() 仅清除单元格的输出区域而不是小部件区域。

更新:这在最新的 Notebook 和 ipywidgets 中似乎仍然是个问题。这里有两个最小的例子来说明我正在努力解决的问题。我试图特别清除的小部件输出是由 qgrid 呈现的数据帧.在这两种情况下,尽管试图清除先前的小部件输出,但后续的选择会导致在前一个表格之后附加一个表格。每个新表格都附加为一个带有 p-Widget 类的 div。

import pandas as pd
import numpy as np
import qgrid
from ipywidgets import interact
from IPython.display import display, clear_output
import notebook
import ipywidgets

print('Jupyter Notebook version: {}'.format(notebook.__version__))
print('ipywidgets version: {}'.format(ipywidgets.__version__))

max_columns = 10
max_rows = 10
col_opts = list(range(1, max_columns + 1))
row_opts = list(range(1, max_rows + 1))

第一次尝试使用交互:

@interact(columns=col_opts, rows=row_opts)
def submit(columns, rows):
df = pd.DataFrame(np.random.randint(0, 100, size=(rows, columns)))
clear_output()
display(qgrid.QGridWidget(df=df)

第二次尝试使用输出小部件:

output = ipywidgets.Output()
display(output)

def submit2(change):
rows = row_input.value
columns = col_input.value
df = pd.DataFrame(np.random.randint(0, 100, size=(rows, columns)))

with output:
output.clear_output()
display(qgrid.QGridWidget(df=df))

col_input = ipywidgets.Dropdown(options=col_opts)
row_input = ipywidgets.Dropdown(options=row_opts)

col_input.observe(submit2, 'value')
row_input.observe(submit2, 'value')

display(col_input)
display(row_input)

最佳答案

从 ipywidgets 7.0 版开始,小部件被视为与任何其他输出一样。要防止在执行 clear_output() 时清除小部件(但清除文本输出),请使用 Output小部件。像这样:

from IPython.display import display, clear_output
import ipywidgets as widgets
import random

b = widgets.Button(
description='Show Random',
disabled=False,
button_style='info',
tooltip='Click me',
icon='check'
)
display(b)

out = widgets.Output()
display(out)

def on_button_clicked(b):
with out:
clear_output()
print("New hello from each button click!. This hello from {}.".format(random.choice(list(range(100)))))

b.on_click(on_button_clicked)

关于python - 从笔记本中清除 Jupyter 笔记本中单元格的小部件区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42782902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com