Jupyter Notebook 中未显示 Plotly Sunburst 图

Plotly sunburst plot not showing in Jupyter notebook

我正在使用 Plotly 和 Jupyter 生成一些视觉效果,以更好地了解用户的在线旅程。我正在使用 Plotly sunburst 图表,因为这为该目的提供了很好的视觉效果。 Plotly 提供了一个效果很好的示例,并提供了我希望用自己的数据生成的视觉效果。我创建了一个反映示例的数据框,但是当我尝试使用 .show() 时,没有生成图表。它看起来 运行 很好(没有错误)并在图表应该出现但不是图表的地方生成白色 space。我们正在测试的数据最终约为 16K 行。

我试过 Plotly 的在线和离线两种方式似乎都没有什么不同。我尝试了不同的标签和 ID。我也试过重新启动笔记本,只 运行 宁我的情节而不是首先的例子。我已经把我的数据缩小到只有大约 50 行,有 4 个父节点和其余的死者。所有这些都得到了相同的结果,白色 space 出现在情节中,但没有产生情节,也没有报告错误。

import numpy as np                             
import pandas as pd
import plotly.graph_objects as go

df3=pd.read_csv('sessionsForAnalysis.csv')
df3['parents'] = df3.groupby(['sessionid'])['pagelabel'].shift(1)

df4=df3[['pagelabel','pagelabel','parents']]
df4.columns=["ids", "labels","parents"]
df4=df4.drop_duplicates()

fig1 = go.Figure()

fig1.add_trace(go.Sunburst(
    ids=df4.ids,
    labels=df4.labels,
    parents=df4.parents,
    #values=one_dimensional_array, #I added this
    domain=dict(column=0)
))



fig1.show()

我希望这会产生如下所示的旭日图,类似于 here 除了我们的数据之外,我们可以用它来分析旅程:

我没有具体的解决方案,但至少在没有您的特定数据集的情况下尽我所能提出建议。


我的第一个怀疑是你没有安装正确的包,但既然你已经说过

I have played around with the online vs offline for Plotly neither appeared to make a difference

在我看来,你的问题 是你的数据,特别是 输入 或数据的结构。从 your referred example 开始,我尝试用 values=['10', '14', '12', '10', '2', '6', '6', '4', '4'] 替换 values=[10, 14, 12, 10, 2, 6, 6, 4, 4],但效果很好,并且增加了导致问题的结构而非类型的可能性。

然后我把结构搞乱了,把labels=["Eve", "Cain", "Seth", "Enos", "Noam", "Abel", "Awan", "Enoch", "Azura"]换成了 labels=["Eve", "Cain", "Noam", "Abel", "Awan", "Enoch", "Azura"]。现在,没有生成没有这样的错误消息的图:

我的结论:确保 parents 中的每个观察都发生在 labels 中。

labels 中删除 'Noam' 就可以了。似乎是因为 'Noam' 没有出现在 parents 中:

从标签中删除 'Seth' 不正确:

因此,再次确保 parents 中的每个观察结果都出现在 labels 中,看看是否适合您。