如何使用Jyupyter notebook使用IPyWidget在循环中创建图形选项卡?

2024-04-18 21:38:27 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有10个数字,我想在Jupyter笔记本中显示。使用ipywidgets,如何在一个循环中创建10个选项卡?下面我分享一个示例,如果我想到10个数字,那么我想在循环中创建选项卡,而不是手动工作。 提前谢谢! 最好的 DS

%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd
import ipywidgets as widgets
import numpy as np

out1 = widgets.Output()
out2 = widgets.Output()
data1 = pd.DataFrame(np.random.normal(size = 50))
data2 = pd.DataFrame(np.random.normal(size = 100))

tab = widgets.Tab(children = [out1, out2,])
tab.set_title(0, 'First')
tab.set_title(1, 'Second')
display(tab)

with out1:
    fig1, axes1 = plt.subplots()
    data1.hist(ax = axes1)
    plt.show(fig1)

with out2:
    fig2, axes2 = plt.subplots()
    data2.hist(ax = axes2)
    plt.show(fig2)

Tags: importoutputmatplotlibasnpplt数字widgets
1条回答
网友
1楼 · 发布于 2024-04-18 21:38:27

好的,这里是我想到的,虽然您必须提供循环外部的数据,但这应该是完全有帮助的

%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd
import ipywidgets as widgets
import numpy as np

data1 = pd.DataFrame(np.random.normal(size = 50))
data2 = pd.DataFrame(np.random.normal(size = 100))
data =[data1,data2]

sub_tab=[widgets.Output() for i in range(len(data))]
tab = widgets.Tab(sub_tab)
for i in range (len(data)):
    tab.set_title(i,"Tab {}".format(i+1))

    with sub_tab[i]:
        fig, axes = plt.subplots()
        data[i].hist(ax = axes)
        plt.show(fig)
display(tab)

相关问题 更多 >