Plotly sunburst绘图在Jupyter笔记本中未显示

4
我正在使用Plotly和Jupyter生成一些可视化图表,以更好地理解用户在线旅程。我正在使用Plotly sunburst图表,因为它非常适合这个目的。Plotly提供了一个很好的示例,可以产生我想要使用自己数据生成的可视化内容。我创建了一个反映示例的数据框架,但是当我尝试使用 .show() 时,没有图表被生成。它似乎运行良好(没有错误),并在应该出现图表的地方生成空白处,但没有图表。我们正在测试的数据最终约有16K行。
我已经尝试过使用Plotly的在线版和离线版,但都没有任何区别。我尝试过不同的标签和ID。我还尝试重新启动笔记本电脑,并仅运行我的情节而不是先运行示例。我将我的数据缩小到仅有大约50行,其中包含4个父节点和其余的后代。所有这些都得到了相同的结果,即图形的空白空间出现,但没有绘制出图形,并且没有报告错误。
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()

我希望这能生成一个类似下面的旭日图,与此处找到的相似,只是使用我们的数据,以便我们可以用它来分析旅程:

enter image description here

1个回答

1

我没有具体的解决方案,但是在没有你的特定数据集的情况下,我至少可以根据自己的能力提出建议。


我的第一个怀疑是您没有安装正确的软件包,但由于您已经说过:“我已经在在线和离线的Plotly上玩过了,似乎没有任何区别”,所以我认为您的问题必须是您的数据,具体来说是您的数据类型或结构。从您参考的示例中,我尝试将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"]。现在,没有出现任何绘图或错误信息,如下所示:

enter image description here

我的结论是:确保parents中的每个观察值都出现在labels中。 从labels中删除'Noam'是可以的,似乎因为'Noam'没有出现在parents中: enter image description herelabels中删除'Seth'是不可以的。

enter image description here

所以,请确保parents中的每个观测值都出现在labels中,然后查看结果是否正确。


我相信你是正确的...... :) 现在我必须解决一个Pandas数据框问题来确认这是否是问题,但在小规模上,我已经让你的解决方案起作用了。 - Droid
@Droid 很高兴能提供帮助!您是否考虑将我的建议标记为已接受的答案?如果有更好的解决方案出现,您始终可以更改“已接受的答案”状态。 - vestland
1
打开浏览器控制台,你会看到错误信息。大多数情况下,它非常通用,比如“无法构建 sunburst”。但有时它可能会给你一些提示,比如“暗示了多个根”。 - ahmedhosny

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