为了账号安全,请及时绑定邮箱和手机立即绑定

如何隐藏代码并重新运行 jupyter 笔记本中的所有单元格?

如何隐藏代码并重新运行 jupyter 笔记本中的所有单元格?

哔哔one 2021-11-02 17:21:08
我想在 Jupyter Notebook 的开头添加某种功能,以隐藏/显示所有单元格并重新运行所有单元格。我想要结束的是一组图表,当所有单元格重新运行时会刷新这些图表。详细信息和我尝试过的内容:文章IPython - 从小部件运行下面的所有单元格显示了如何添加按钮以重新运行下面的所有单元格。以及如何从使用 nbviewer 可视化的 ipython notebook 中的单元格隐藏代码?. 通过在两个不同的单元格中进行此设置,我最终得到了以下结果:当单元格折叠时,它看起来像这样:这很好用,但我真的很好奇是否可以设置按钮的格式以使它们看起来相同。也许可以将它们对齐为同一单元格的输出?我试图通过将两个片段放在同一个单元格中来做到这一点,但现在似乎Hide button被覆盖了Refresh button:片段 1:from IPython.display import HTMLHTML('''<script>  function code_toggle() {    if (code_shown){      $('div.input').hide('500');      $('#toggleButton').val('Show code')    } else {      $('div.input').show('500');      $('#toggleButton').val('Hide code')    }    code_shown = !code_shown  }  $( document ).ready(function(){    code_shown=false;    $('div.input').hide()  });</script><form action="javascript:code_toggle()"><input type="submit" id="toggleButton" value="Show code"></form>''')from IPython.display import Javascript, displayfrom ipywidgets import widgetsdef run_all(ev):    display(Javascript('IPython.notebook.execute_cells_below()'))button = widgets.Button(description="Refresh")button.on_click(run_all)display(button)现在我得到了这个:输出 1:有谁知道如何使它更优雅一点?
查看完整描述

1 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

我真的希望有人能够提供更好的答案,但是尝试并失败了几个小时后,我发现了这一点:

通过简单地混合问题中两个片段的几个部分,我可以设置Refresh button与以下格式相同的格式Hide Code buttion

输出/笔记本视图:

//img1.sycdn.imooc.com//6181034a00012bc910560126.jpg

但这仍然需要两个不同单元格中的两个代码片段,以及第三个单元格中的一些测试代码:


单元格/片段1:


from IPython.display import HTML


HTML('''<script>

  function code_toggle() {

    if (code_shown){

      $('div.input').hide('500');

      $('#toggleButton').val('Display code')

    } else {

      $('div.input').show('500');

      $('#toggleButton').val('Hide Code')

    }

    code_shown = !code_shown

  }


  $( document ).ready(function(){

    code_shown=false;

    $('div.input').hide()

  });

</script>

<form action="javascript:code_toggle()"><input type="submit" id="toggleButton" value="Display code"></form>''')

单元格/片段 2:


HTML('''<script>


</script>

<form action="javascript:IPython.notebook.execute_cells_below()"><input type="submit" id="toggleButton" value="Refresh"></form>''')

单元格/片段 3:


try: x

except NameError: x = None


if x is None:

    x = 0

    print(x)

else:

    x = x + 1

    print(x)

但是,我仍然无法漂亮地并排显示两个按钮,并且当我点击 时显示闪烁Refresh。


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号