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
中,看看是否适合您。
我正在使用 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
中,看看是否适合您。