我正在从事一个以教育为目的的个人项目。与 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
任何人可以提供任何关于为什么会发生这种情况的见解吗?我已经坚持了两天了。我不知道这会如何发生、发生什么或为什么会发生。任何建议将不胜感激。