Pandas Plotas сгруппировать данные индивидуально в Dash / Plotly - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь нарисовать линейную диаграмму на одном графике данных, сгруппированных по двум категориям: страна и округ. Я должен сделать так, чтобы он хорошо работал с Dash. Сначала я попытался разбить кадры данных на несколько и построить без группировки, но в больших таблицах это становится мучительно медленным, поэтому я сейчас ищу наиболее питонический способ.

Мой набор данных выглядит так:

      country price_area           amount  
0     taiwan     taiwan           -3.13
1     taiwan     taiwan            0.15
62   sumatra       CNT1           -2.56
63   sumatra       CNT1           -2.47
124  sumatra       CNT1            0.07
125  sumatra       CNT2           -1.66
186  sumatra       CNT3            1.04
187  sumatra       CNT3            1.65

После этого ответа Построение графиков сгруппированных данных панд , я смог сделать следующее:

fig = go.Figure()
for name, group in df2.groupby('price_area'):
    trace = go.Scatter()
    trace.name = name
    trace.x = group['date']
    fig.add_trace(trace)

Но он добавляет только одну зигзагообразную линию, а не 4, на которую я надеялся. В matplotlib это было бы что-то вроде:

df2.groupby(['date','type']).values()['amount'].unstack().plot(ax=ax)

Я не мог даже создать рабочий сюжет, используя что-то подобное в заговоре. Пожалуйста и спасибо

...