Участок с солнечными лучами не отображается в блокноте Jupyter - PullRequest
1 голос
/ 30 сентября 2019

Я использую Plotly и Jupyter для создания некоторых визуальных эффектов, чтобы лучше понимать путешествия пользователей онлайн. Я использую диаграмму солнечных лучей Plotly, так как она отлично подходит для этой цели. Plotly предоставляет пример, который отлично работает, и предоставляет визуальное представление, которое я собираюсь создать с моими собственными данными. Я создал фрейм данных, который отражает пример, но когда я пытаюсь использовать .show(), диаграмма не создается. Кажется, он работает нормально (без ошибок) и создает пустое пространство там, где должна быть диаграмма, а не диаграмма. Данные, на которых мы тестируем, в конечном итоге составляют около 16 тыс. Строк.

Я поигрался с онлайн против оффлайн для Plotly, и, похоже, ничего не изменило. Я пробовал разные ярлыки и идентификаторы. Я также попытался перезапустить ноутбук и сначала запустить свой график вместо примера. Я взял свои данные и сузил до 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 голос
/ 01 октября 2019

У меня нет конкретного решения, но, по крайней мере, предложение в меру моих способностей без вашего конкретного набора данных.


Мое первое подозрение было, что у вас не были установлены правильные пакеты, но так как вы заявили, что

Я играл с онлайн и оффлайн для 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.

Удаление 'Noam' из labels в порядке. по-видимому, потому что 'Noam' не встречается в parents: enter image description here

Снятие 'Seth' с этикеток не подходит:

enter image description here

Итак, еще раз, убедитесь, что каждое наблюдение в parents происходит в labels и посмотрите, сработает ли это для вас.

...