Pandas Преобразовать словарь в список словарей - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь использовать Plotly Gantt и добавлять аннотации в представление, но у меня возникают проблемы с добавлением аннотаций. Мои данные извлекаются из фрейма данных, где меткой является df ['Label'] (строка), но я сделал тестовый фрейм данных 'ann', и мне не повезло с ним ниже. Похоже, что в списке словарей, которые они используют, есть промежуточный знак =, а у меня: - это то, что вызывает проблему? Любое простое исправление? Я не могу пометить все аннотации по отдельности, как показано ниже, потому что их сотни

Пример правильного формата:

Ошибка:

ValueError: 
    Invalid value of type 'builtins.dict_values' received for the 'annotations' property of layout
        Received value: dict_values([{'x': Timestamp('2020-06-01 00:00:00'), 'y': 2, 'text': 'test', 'showarrow': False}, {'x': Timestamp('2020-07-01 00:00:00'), 'y': 5, 'text': 'test3', 'showarrow': False}])

    The 'annotations' property is a tuple of instances of
    Annotation that may be specified as:
      - A list or tuple of instances of plotly.graph_objs.layout.Annotation
      - A list or tuple of dicts of string/value properties that
        will be passed to the Annotation constructor

Код :

from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import plotly.figure_factory as ff
import plotly.graph_objs as go

# figure
fig = ff.create_gantt(df)

# add annotations
annots =  [dict(x=LabelDateA,y=0,text="Task label A", showarrow=False, font=dict(color='white')),
           dict(x=LabelDateB,y=1,text="Task label B", showarrow=False, font=dict(color='White')),
           dict(x=LabelDateC,y=2,text="Task label C", showarrow=False, font=dict(color='White'))]

print(df)

ann = ann.T.to_dict().values()
print(ann)

# plot figure
fig['layout']['annotations'] = ann
fig.show()
...