Как построить график Da sh с подсчетом категорий на определенную дату - PullRequest
0 голосов
/ 17 июня 2020

Как построить столбчатую диаграмму с накоплением количества «основных / второстепенных» проблем в любой момент времени?

У меня есть следующие данные в файле csv:

Issue_Date   Severity

20.2.2020    Major 
20.2.2020    Minor
31.3.2020    Major 
31.3.2020    Major 
31.3.2020    Minor
01.4.2020    Major

Я читаю приведенный выше CSV, используя pandas фрейм данных, и я попытался подсчитать возникновение определенной степени серьезности в заданную дату, используя метод группировки

data = df.groupby(["Issue_Date", "Severity"]).size()

Здесь «данные» - это серия выходных данных :

Issue_Date     Severity
20.2.2020       Major     1
                Minor     1
31.3.2020       Major     2
                Minor     1
01.4.2020       Major     1

На xaxis display Issue_date и на yaxis display counts и вычерчивает сгруппированные категории на основе серьезности.

Как я могу добиться этого, используя da sh plotly?

1 Ответ

0 голосов
/ 24 июня 2020

Вам нужно разложить groupby и добавить их как 2 трассы в график. Вот рабочий пример:

import pandas as pd
import plotly.graph_objects as go
import dash
import dash_core_components as dcc
import dash_html_components as html

data = {'Issue_Date': ['20.2.2020','20.2.2020','31.3.2020','31.3.2020','31.3.2020','01.4.2020'],
                   'Severity': ['Major','Minor','Major' ,'Major' ,'Minor','Major']}

df = pd.DataFrame (data, columns = ['Issue_Date', 'Severity'])

temp = df.groupby(["Issue_Date", "Severity"]).size()

temp1 = temp.rename('size').reset_index()

major=temp1[temp1['Severity']=='Major']
minor=temp1[temp1['Severity']=='Minor']

fig = go.Figure(data=[
    go.Bar(name='Major', x=major['Issue_Date'], y=major['size']),
    go.Bar(name='Minor', x=minor['Issue_Date'], y=minor['size'])
])

fig.update_layout(barmode='stack')

app = dash.Dash()
app.layout = html.Div([
    dcc.Graph(figure=fig)
])

app.run_server(debug=False)
...