Значения графика для нескольких месяцев и лет в Plotly / Dash - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть приборная панель Dash, и мне нужно построить на оси х месяцы от 0 до 12, и мне нужно иметь несколько линий на одном и том же рисунке для разных выбранных лет, т.е. 1991-2040.Отмеченное значение - это столбцы с именем «total» в кадре данных.Метки должны быть годами, а общее значение находится на оси Y.Мои данные выглядят так:

      Month Year  Total
0       0  1991  31.4
1       0  1992  31.4
2       0  1993  31.4
3       0  1994  20
4       0  1995  300
..    ...   ...   ...
33      0  2024  31.4
34      1  2035  567
35      1  2035  10
36      1  2035  3
....

Нужно ли группировать их и как этого добиться в Dash / Plotly?

1 Ответ

0 голосов
/ 14 декабря 2018

Мне кажется, вам стоит взглянуть на pd.pivot_table.

%matplotlib inline
import pandas as pd
import numpy as np
import plotly.offline as py
import plotly.graph_objs as go

# create a df
N = 100
df = pd.DataFrame({"Date":pd.date_range(start='1991-01-01',
                                        periods=N,
                                        freq='M'),
                   "Total":np.random.randn(N)}) 

df["Month"] = df["Date"].dt.month
df["Year"] = df["Date"].dt.year
# use pivot_table to have years as columns
pv = pd.pivot_table(df,
                    index=["Month"],
                    columns=["Year"],
                    values=["Total"])
# remove multiindex in columns
pv.columns = [col[1] for col in pv.columns]

data = [go.Scatter(x = pv.index,
                   y = pv[col],
                   name = col)
        for col in pv.columns]

py.iplot(data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...