|
|
import pandas as pd |
|
|
import plotly.graph_objs as go |
|
|
import dash |
|
|
import dash_core_components as dcc |
|
|
import dash_html_components as html |
|
|
from dash.dependencies import Input, Output |
|
|
|
|
|
csvFileCovidDataset = pd.read_csv('diseaseOutbreakData.csv') |
|
|
indianStatesFocus=pd.read_csv('uniqueDataCity.csv') |
|
|
|
|
|
entireValue=indianStatesFocus.shape[0] |
|
|
hiddenValue=indianStatesFocus['current_status'].value_counts() |
|
|
|
|
|
detectedStateValue=indianStatesFocus['detected_state'].value_counts().reset_index() |
|
|
|
|
|
|
|
|
endValue=csvFileCovidDataset.groupby('Country/Region')['Deaths'].max().sort_values(ascending=False).reset_index().head(22) |
|
|
|
|
|
|
|
|
countryOptions=[ |
|
|
{'label':'All','value':'All'}, |
|
|
{'label':'China','value':'China'}, |
|
|
{'label':'Iran','value':'Iran'}, |
|
|
{'label':'US','value':'US'}, |
|
|
{'label':'United Kingdom','value':'United Kingdom'}, |
|
|
{'label':'Italy','value':'Italy'}, |
|
|
{'label':'India','value':'India'} |
|
|
] |
|
|
|
|
|
covidCountryInfo=[ |
|
|
{'label':'All','value':'All'}, |
|
|
{'label':'Recovered ','value':'Recovered'}, |
|
|
{'label':'Hospitalized','value':'Hospitalized'}, |
|
|
{'label':'Deceased','value':'Deceased'} |
|
|
|
|
|
] |
|
|
indianStatesValue=[ |
|
|
{'label':'All','value':'All'}, |
|
|
{'label':'Maharashtra','value':'Maharashtra'}, |
|
|
{'label':'Delhi','value':'Delhi'}, |
|
|
{'label':'Kerala','value':'Kerala'}, |
|
|
{'label':'Telangana','value':'Telangana'}, |
|
|
{'label': 'West Bengal ', 'value': 'West Bengal'}, |
|
|
{'label': 'Rajasthan', 'value': 'Rajasthan'}, |
|
|
{'label': 'Tamil Nadu', 'value': 'Tamil Nadu'}, |
|
|
{'label': 'Uttar Pradesh', 'value': 'Uttar Pradesh'} |
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app = dash.Dash(__name__) |
|
|
|
|
|
app.layout=html.Div([ |
|
|
html.Div([ |
|
|
html.H1("Covid-19 Outbreak Findings",style={'margin-top':'10px'}), |
|
|
html.P("Covid-19 India Findings",style={'text-align':'left','margin-top':'-25px'}) |
|
|
],className='jumbotron'), |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.H3(entireValue), |
|
|
html.H6("Cumulative Test Cases Across India") |
|
|
],className='card-body') |
|
|
],className='card',style={'background-color':'blue','margin-top':'0.2rem'}) |
|
|
],className='col-md-12'), |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.H3(hiddenValue[0]), |
|
|
html.H6("Validated Instances of Covid-19") |
|
|
],className='card-body') |
|
|
],className='card',style={'background-color':'green','margin-top':'0.2rem'}) |
|
|
],className='col-md-12'), |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.H3(hiddenValue[1]), |
|
|
html.H6("Recuperated Instances of Covid-19") |
|
|
],className='card-body') |
|
|
],className='card',style={'background-color':'red','margin-top':'0.2rem'}) |
|
|
],className='col-md-12'), |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.H3(hiddenValue[2]), |
|
|
html.H6("Deaths Throughout India Due to Covid-19 Pandemic") |
|
|
],className='card-body') |
|
|
],className='card',style={'background-color':' yellow','margin-top':'0.2rem'}) |
|
|
],className='col-md-12'), |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.H3(hiddenValue[3]), |
|
|
html.H6("Number of People Who Moved Due to Covid-19 Pandemic") |
|
|
],className='card-body') |
|
|
],className='card',style={'background-color':'orange','margin-top':'0.2rem'}) |
|
|
],className='col-md-12') |
|
|
],className='row') |
|
|
],className='col-md-2'), |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
dcc.Graph(id='scatter-plot', |
|
|
figure={'data':[go.Bar(x=endValue['Country/Region'],y=endValue['Deaths'])], |
|
|
'layout':go.Layout(title='Number of Death according to Country',xaxis={'title':'Country/Region'},yaxis={'title':'Number of Deaths'},paper_bgcolor='rgba(0,0,0,1)',plot_bgcolor='rgba(0,0,0,1)')}) |
|
|
|
|
|
],className='card-body') |
|
|
],className='card') |
|
|
],className='col-md-6'), |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
dcc.Dropdown(id='pie', options=indianStatesValue, value='All'), |
|
|
dcc.Graph(id='pie1') |
|
|
],className='card-body') |
|
|
],className='card') |
|
|
],className='col-md-6'), |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
dcc.Graph(id='d_state', |
|
|
figure={'data':[go.Bar(x=detectedStateValue['index'],y=detectedStateValue['detected_state'])], |
|
|
'layout':go.Layout(title='No. of case in Different state',xaxis={'title':'State'},yaxis={'title':'Number of patients'})}) |
|
|
],className='card-body') |
|
|
],className='card') |
|
|
],className='col-md-6 mt-3'), |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
dcc.Dropdown(id='piker',options=countryOptions,value='All'), |
|
|
dcc.Graph(id='line') |
|
|
],className='card-body') |
|
|
],className='card') |
|
|
],className='col-md-6 mt-3') |
|
|
|
|
|
],className='row') |
|
|
],className='col-md-10') |
|
|
],className='row'), |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
html.Div([ |
|
|
dcc.Dropdown(id='pik',options=covidCountryInfo,value='All'), |
|
|
dcc.Graph(id='line2') |
|
|
],className='card-body') |
|
|
],className='card') |
|
|
],className='col-md-12 mt-3') |
|
|
],className='row'), |
|
|
html.Div([],className='row') |
|
|
],className='container-fluid') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.callback(Output('line','figure'), [Input('piker','value')]) |
|
|
def update_graph(type): |
|
|
if type=='All': |
|
|
hiddenValue = csvFileCovidDataset.groupby('Date')['Deaths'].max().sort_values(ascending=True).reset_index() |
|
|
return {'data':[go.Line(x=hiddenValue['Date'],y=hiddenValue['Deaths'])], |
|
|
'layout':go.Layout(title='Number of Deaths Per Day',xaxis={'title':'Dates'},yaxis={'title':'Number of Deaths'},paper_bgcolor='rgba(0,0,0,1)',plot_bgcolor='rgba(0,0,0,1)')} |
|
|
else: |
|
|
hiddenValue = csvFileCovidDataset[csvFileCovidDataset['Country/Region'] == type] |
|
|
hiddenValues = hiddenValue.groupby('Date')['Deaths'].max().sort_values(ascending=True).reset_index() |
|
|
return {'data': [go.Line(x=hiddenValues['Date'], y=hiddenValues['Deaths'])], |
|
|
'layout': go.Layout(title='Number of Deaths Per Day',xaxis={'title':'Dates'},yaxis={'title':'Number of Deaths'},paper_bgcolor='rgba(0,0,0,1)',plot_bgcolor='rgba(0,0,0,1)')} |
|
|
|
|
|
|
|
|
@app.callback(Output('line2','figure'), [Input('pik','value')]) |
|
|
def update_graph(secondInput): |
|
|
if secondInput=='All': |
|
|
hiddenValues=indianStatesFocus['detected_state'].value_counts().reset_index() |
|
|
return {'data':[go.Line(x=hiddenValues['index'],y=hiddenValues['detected_state'])], |
|
|
'layout':go.Layout(title='Number of Patients',xaxis={'title':'Number of Patients'},yaxis={'title':'states'})} |
|
|
else: |
|
|
indicatorCovid = indianStatesFocus[indianStatesFocus['current_status'] == secondInput] |
|
|
hiddenValueIterator = indicatorCovid['detected_state'].value_counts().reset_index() |
|
|
return {'data': [go.Line(x=hiddenValueIterator['index'], y=hiddenValueIterator['detected_state'])], |
|
|
'layout': go.Layout(title='Number of Patients',xaxis={'title':'Number of patients'},yaxis={'title':'States'})} |
|
|
|
|
|
|
|
|
@app.callback(Output('pie1','figure'), [Input('pie','value')]) |
|
|
def update_graph(type2): |
|
|
if type2=='All': |
|
|
predeterminedHiddenValue = indianStatesFocus['current_status'].value_counts().reset_index() |
|
|
firstValueIndex = predeterminedHiddenValue['current_status'][0] |
|
|
secondValueIndex = predeterminedHiddenValue['current_status'][1] |
|
|
thirdValueIndex = predeterminedHiddenValue['current_status'][2] |
|
|
|
|
|
covidCategoriesNames = ['Hospitalized', 'Recovered', 'Deceased'] |
|
|
valueIndices = [firstValueIndex, secondValueIndex, thirdValueIndex] |
|
|
generatedDrawing=go.Figure(data=[go.Pie(labels=covidCategoriesNames, values=valueIndices)]) |
|
|
return generatedDrawing |
|
|
else: |
|
|
hiddenValue = indianStatesFocus[indianStatesFocus['detected_state'] == type2] |
|
|
predeterminedHiddenValue = hiddenValue['current_status'].value_counts().reset_index() |
|
|
firstValueIndex = predeterminedHiddenValue['current_status'][0] |
|
|
secondValueIndex = predeterminedHiddenValue['current_status'][1] |
|
|
thirdValueIndex = predeterminedHiddenValue['current_status'][2] |
|
|
valueIndices = [firstValueIndex, secondValueIndex, thirdValueIndex] |
|
|
covidCategoriesNames = ['Hospitalized', 'Recovered', 'Deceased'] |
|
|
generatedDrawing= go.Figure(data=[go.Pie(labels=covidCategoriesNames, values=valueIndices)]) |
|
|
return generatedDrawing |
|
|
|
|
|
if __name__ == '__main__': |
|
|
app.run_server(host= 0.0.0.0, debug=False) |