使用 nbconvert 转换为 html 后,Plotly choropleth 滑块中断?

问题描述 投票:0回答:0

我正在从事一个以教育为目的的个人项目。与 Plotly 相关的所有内容在我的 JupyterLab 笔记本中都运行良好。我的项目涉及通过 nbconverter 将我的笔记本转换为 .html 文件。

我的问题:

现在,当我将文件转换为 HTML 时,我的 Plotly 图表仍然可见,但是轴标签全乱了。我相信这可能与所使用的数据框的列/索引的数据类型有关,但我已经尝试多次更改它们,但似乎没有任何效果。

例如: 这是我在 JupyterLab 中运行它时的样子。这是对的:

然而,在我转换为 html 之后,滑块似乎中断并显示无序。数据似乎仍然正确,但滑块已失去用途,因为数字未排序。这是它的样子:

这是我用来制作滑块的代码:

    YEARS = boulder_men_all_results['Year'].unique() #list of numpy.int32

    # Slider creation
    steps = []
    for i in range(0, len(data_bal)):
        step = dict(method="restyle",
                    args=["visible", [False] * len(data_bal)],
                    label=str(YEARS[i])) #i've tried with and without the str(), but the result is the same
        step['args'][1][i] = True
        steps.append(step)

以下是我生成等值线图的方法:

    data_bal = []
    for i in YEARS:
        data_upd = [dict(type='choropleth',
                         name=str(i),
                         locations=df.loc[i].index,
                         z=df.loc[i],
                         locationmode='ISO-3',
                         colorbar=dict(title='# of Athletes'),
                         visible=True if i == YEARS[-1] else False
                        )
                   ]    
        data_bal.extend(data_upd)
    
    # Slider creation
    steps = []
    for j in range(0, len(data_bal)):
        step = dict(method="restyle",
                    args=["visible", [False] * len(data_bal)],
                    label=str(YEARS[j]))
        step['args'][1][j] = True
        steps.append(step)

    # Sliders layout:
    sliders = [dict(active=len(YEARS) - 1,
                    currentvalue={"prefix": "Year: "},
                    pad={"t": 20},
                    steps=steps)]

    # Plot layout
    title = f"{title}<br><sup>{sub}"
    layout = dict(title=dict(text=title,
                             font=dict(size=30)),
                  geo=dict(scope='world',
                           projection=dict()),
                  sliders=sliders,
                  width=1000,
                  height=600,
                  plot_bgcolor='#f0f0f0',
                  paper_bgcolor='#f0f0f0')

    fig = go.Figure(data=data_bal, layout=layout)
    fig.show(config=config)

这是我使用的 nbconvert 命令:

    convert:
    jupyter nbconvert --execute \
    --ExecutePreprocessor.timeout=600 \
    --TemplateExporter.exclude_input=True \
    --TemplateExporter.exclude_output_prompt=True \
    --to html "IFSC Analysis.ipynb" \
    --output docs/index.html

任何人可以提供任何关于为什么会发生这种情况的见解吗?我已经坚持了两天了。我不知道这会如何发生、发生什么或为什么会发生。任何建议将不胜感激。

jupyter-notebook plotly plotly-python nbconvert
© www.soinside.com 2019 - 2024. All rights reserved.