从命令行运行Plotly脚本

3

我想要从命令行运行Jupyter Notebook的所有单元格。为此,我已经完成了以下操作:

jupyter nbconvert --inplace --execute myNotebook.ipynb. 

现在的问题是,我的脚本中包含一些来自Plotly库的图表,当我使用jupyter界面再次打开笔记本时,这些图表都是空白的。我尝试了很多选项,例如:

from plotly.offline import init_notebook_mode, iplot
init_notebook_mode(connected=True)

%matplotlib inline

有人对这个问题有任何想法吗?

谢谢

我添加了一部分脚本以帮助你。

import pandas as pd
import plotly
from plotly.offline import init_notebook_mode, iplot
import plotly.graph_objects as go
from datetime import datetime
init_notebook_mode(connected=True)

df = pd.DataFrame({'one' : pd.Series([10, 20, 30, 40]),'two' : pd.Series([10, 20, 30, 40])})

fig = go.Figure()
fig.add_trace(go.Scatter(x=df.one,y=df.two))
fig.update_layout(xaxis_range=[min(df.one),max(df.one)])
iplot(fig)

print(datetime.now())

我怀疑 --inplace 正在替换你现有的笔记本。你可以尝试使用以下命令:jupyter nbconvert --execute <notebook> 或者 jupyter nbconvert --execute --to notebook <notebook>。 - nithin
选项 "jupyter nbconvert --execute --to notebook Untitled.ipynb" 会创建一个新的 .ipynb 文件,其中包含空白图形。选项 "jupyter nbconvert --execute --to notebook Untitled.ipynb" 会创建一个 html 文件。我将编辑我的帖子以添加我的脚本部分。谢谢! - caumente
我能看到图表,我运行了你的代码,它对我有效。 - nithin
你尝试过通过命令行更新笔记本电脑并重新打开吗? - caumente
更新了吗?我刚刚用你的命令运行了笔记本,它可以工作。 - nithin
看一下代码的最后一行:print(datetime.now()) 这会显示当前日期和时间,因此我需要每天更新这个笔记本,同时更新图表和时间。然而,当我在终端中运行 "jupyter nbconvert --inplace --execute myNotebook.ipynb" 时,时间被更新了,但是图表没有(仍然是空白的)。 - caumente
1个回答

1
你可以通过以下两个步骤解决这个问题:
  1. 您的笔记本由于plotly的原因存在不受信任的问题,所以请信任您的笔记本

    jupyter trust myNotebook.ipynb

  2. 现在从命令行中运行您的笔记本

    jupyter nbconvert --inplace --execute myNotebook.ipynb.

您也可以查看相关链接

这是我的工作笔记本图片enter image description here

enter image description here


哦!太好了!感谢您提供的信息,我终于能正确地运行脚本了。需要注意的是,在我的情况下,我不得不反向执行步骤。我的意思是,首先我运行了jupyter nbconvert --inplace --execute myNotebook.ipynb然后:jupyter trust myNotebook.ipynb因为当我执行第一个命令时,我的笔记本被转换为不自动信任。非常感谢! - caumente

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接