Commit 3d12d831 authored by Manas Gabani's avatar Manas Gabani

logical error in get_distribution_for_teachers_by_educational_qualification...

logical error in get_distribution_for_teachers_by_educational_qualification route handled and created utils.py for all utility functions
parent 7ca1a4a3
from flask import Flask, flash, request, redirect, url_for, render_template from flask import Flask, flash, request, redirect, url_for, render_template
import urllib.request
from werkzeug.utils import secure_filename
from fileinput import filename
import pandas as pd import pandas as pd
import numpy as np import numpy as np
import os import os
import glob import glob
from utils import *
import matplotlib import matplotlib
matplotlib.use('Agg') matplotlib.use('Agg')
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
def read_all_csv(path='./rawdata_csv/', extension='csv'):
result = glob.glob(path+'SRC_R*.{}'.format(extension))
df=None
for file in result:
if(df is None):
df=pd.read_csv(file)
else:
df=pd.concat([df,pd.read_csv(file)], ignore_index=True)
df_master=pd.read_csv("SRC_MasterData.csv")
df_master=df_master[['State_Code','State_Name','Total_Population']]
final_df = pd.merge(df, df_master, on='State_Code', how='inner')
final_df['total']=final_df[['Primary_Only','Primary_with_Upper_Primary','Primary with_Upper_Primary_Sec_H.Sec','Upper_Primary_Only','Upper_Primary_with_Sec_H.Sec','Primary_with_Upper_Primary_Sec','Upper_Primary_with_Sec']].sum(axis=1)
final_df['total_by_population']=final_df['total']/final_df['Total_Population']
final_df=final_df[["Year","State_Name","State_Code","Main_Dimension","Sub_Dimension","Total_Population",'total','total_by_population']]
return final_df
final_df=read_all_csv()
latest_year = max(final_df['Year'])
dict_summary={"top3":[],"bottom3":[]} dict_summary={"top3":[],"bottom3":[]}
form_value_to_sub_dimension_mapping = { form_value_to_sub_dimension_mapping = {
'govt':'Government', 'govt':'Government',
...@@ -82,196 +57,8 @@ default_state_code = 27 # for Maharashtra ...@@ -82,196 +57,8 @@ default_state_code = 27 # for Maharashtra
fig_size_w, fig_size_h = 8, 6 fig_size_w, fig_size_h = 8, 6
fig_size_tr_w, fig_size_tr_h = 8,6 fig_size_tr_w, fig_size_tr_h = 8,6
def statewise_distribution(output_filename, input_df, year, main_dimension, sub_dimension=''): final_df=read_all_csv()
if sub_dimension: latest_year = max(final_df['Year'])
df_filtered = input_df.loc[(input_df['Main_Dimension'] == main_dimension) & ((input_df['Sub_Dimension'] == sub_dimension))]
else:
df_filtered = input_df.loc[(input_df['Main_Dimension'] == main_dimension)]
df_filtered = df_filtered.loc[df_filtered['Year'] == year]
df_filtered = df_filtered[['Year','State_Name','total','total_by_population']]
df_sum = df_filtered.groupby(['State_Name','Year'],as_index = False).sum().sort_values("total_by_population",ascending=False)
fig = plt.figure(figsize=(fig_size_w,fig_size_h))
plt.xticks(rotation=90, ha="right")
plt.bar(df_sum['State_Name'],df_sum['total_by_population'], align='center')
plt.ylabel('Enrollements/Population')
list_states=list(df_sum['State_Name'])
dict_summary['top3']=[list_states[0],list_states[1],list_states[2]]
dict_summary['bottom3']=[list_states[-1],list_states[-2],list_states[-3]]
plt.savefig(output_filename)
plt.close(fig)
return dict_summary
def total_enrolment_by_category(output_filename, input_df, main_dimension, state_code, ylabel):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil = input_df.loc[input_df['Main_Dimension'] == main_dimension]
df_fil = df_fil.loc[(df_fil['State_Code'] == state_code)]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','State_Code','Year','total']]
df_govt=df_sum.loc[(df_sum['Sub_Dimension'] == "Government")]
df_pvt=df_sum.loc[(df_sum['Sub_Dimension'] == "Private")]
plt.plot(df_govt['Year'],df_govt['total'],color='r', label='Goverment')
plt.plot(df_pvt['Year'],df_pvt['total'],color='g', label='Private')
if not 'Rural' in main_dimension:
df_madr=df_sum.loc[(df_sum['Sub_Dimension'] == "Madrasas & Unrecognised")]
plt.plot(df_madr['Year'],df_madr['total'],color='b', label='Madrasas')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel(ylabel)
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
def total_teachers_by_main_dimension(output_filename, input_df, main_dimension, state_code):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil = input_df.loc[input_df['Main_Dimension'] == main_dimension]
df_fil = df_fil.loc[(df_fil['State_Code'] == state_code)]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','State_Code','Year','total']]
if 'Category' in main_dimension:
df_govt = df_sum.loc[(df_sum['Sub_Dimension'] == "Government")]
df_pvt = df_sum.loc[(df_sum['Sub_Dimension'] == "Private")]
df_madr = df_sum.loc[(df_sum['Sub_Dimension'] == "Madrasas & Unrecognised")]
plt.plot(df_govt['Year'],df_govt['total'],color='r', label='Goverment')
plt.plot(df_pvt['Year'],df_pvt['total'],color='g', label='Private')
plt.plot(df_madr['Year'],df_madr['total'],color='b', label='Madrasas')
else:
df_bel_sec = df_sum.loc[(df_sum['Sub_Dimension'] == "Below Secondary")]
df_sec = df_sum.loc[(df_sum['Sub_Dimension'] == "Secondary")]
df_hs = df_sum.loc[(df_sum['Sub_Dimension'] == "Higher Secondary")]
df_grad = df_sum.loc[(df_sum['Sub_Dimension'] == "Graduate")]
df_pg = df_sum.loc[(df_sum['Sub_Dimension'] == "Post Graduate")]
df_phd = df_sum.loc[(df_sum['Sub_Dimension'] == "M.Phil / Ph.D")]
plt.plot(df_bel_sec['Year'],df_bel_sec['total'],color='r', label='Below Secondary')
plt.plot(df_sec['Year'],df_sec['total'],color='g', label='Secondary')
plt.plot(df_hs['Year'],df_hs['total'],color='b', label='Higher Secondary')
plt.plot(df_grad['Year'],df_grad['total'],color='y', label='Graduate')
plt.plot(df_pg['Year'],df_pg['total'],color='c', label='Post Graduate')
plt.plot(df_phd['Year'],df_phd['total'],color='m', label='M.Phil / Ph.D')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel('Number of Teachers')
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
def total_classrooms_by_trend(output_filename, input_df, state_code):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil=input_df.loc[input_df['Main_Dimension'] == "Total Classrooms"]
df_fil=df_fil.loc[(df_fil['State_Code'] == state_code)]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','State_Code','Year','total']]
df_good_cond = df_sum.loc[(df_sum['Sub_Dimension'] == "Good Condition")]
df_minor_repair = df_sum.loc[(df_sum['Sub_Dimension'] == "Need Minor Repair")]
df_major_repair = df_sum.loc[(df_sum['Sub_Dimension'] == "Need Major Repair")]
plt.plot(df_good_cond['Year'],df_good_cond['total'],color='r', label='Good Condition')
plt.plot(df_minor_repair['Year'],df_minor_repair['total'],color='g', label='Need Minor Repair')
plt.plot(df_major_repair['Year'],df_major_repair['total'],color='b', label='Need Major Repair')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel('Number of classrooms')
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
def total_schools_for_facilities(output_filename, input_df, state_code):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil=input_df.loc[input_df['Main_Dimension'] == "School Facilities"]
df_fil=df_fil.loc[(df_fil['State_Code'] == state_code)]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','State_Code','Year','total']]
df_enrolment_lt_50 = df_sum.loc[(df_sum['Sub_Dimension'] == "Enrolment <= 50")]
df_drinking_water = df_sum.loc[(df_sum['Sub_Dimension'] == "Schools with Drinking Water")]
df_girls_toilet = df_sum.loc[(df_sum['Sub_Dimension'] == "Schools with Girls' Toilet")]
df_ramp = df_sum.loc[(df_sum['Sub_Dimension'] == "Schools with Ramp")]
df_single_classroom = df_sum.loc[(df_sum['Sub_Dimension'] == "Single Classroom Schools")]
df_single_teacher = df_sum.loc[(df_sum['Sub_Dimension'] == "Single Teacher Schools")]
plt.plot(df_enrolment_lt_50['Year'], df_enrolment_lt_50['total'], color='r', label='Enrolment <= 50')
plt.plot(df_drinking_water['Year'], df_drinking_water['total'], color='g', label='Schools with Drinking Water')
plt.plot(df_girls_toilet['Year'], df_girls_toilet['total'], color='b', label='Schools with Girls\' Toilet')
plt.plot(df_ramp['Year'], df_ramp['total'], color='y', label='Schools with Ramp')
plt.plot(df_single_classroom['Year'], df_single_classroom['total'], color='c', label='Single Classroom Schools')
plt.plot(df_single_teacher['Year'], df_single_teacher['total'], color='m', label='Single Teacher Schools')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel('Number of schools')
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
def main_dimension_overall(output_filename, input_df, main_dimension, ylabel):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil=input_df.loc[input_df['Main_Dimension'] == main_dimension]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','Year','total']]
if 'Classrooms' not in main_dimension:
df_govt=df_sum.loc[(df_sum['Sub_Dimension'] == "Government")]
df_pvt=df_sum.loc[(df_sum['Sub_Dimension'] == "Private")]
df_madr=df_sum.loc[(df_sum['Sub_Dimension'] == "Madrasas & Unrecognised")]
plt.plot(df_govt['Year'],df_govt['total'],color='r', label='Goverment')
plt.plot(df_pvt['Year'],df_pvt['total'],color='g', label='Private')
plt.plot(df_madr['Year'],df_madr['total'],color='b', label='Madrasas')
else:
df_good_cond = df_sum.loc[(df_sum['Sub_Dimension'] == "Good Condition")]
df_minor_repair = df_sum.loc[(df_sum['Sub_Dimension'] == "Need Minor Repair")]
df_major_repair = df_sum.loc[(df_sum['Sub_Dimension'] == "Need Major Repair")]
plt.plot(df_good_cond['Year'],df_good_cond['total'],color='r', label='Good Condition')
plt.plot(df_minor_repair['Year'],df_minor_repair['total'],color='g', label='Need Minor Repair')
plt.plot(df_major_repair['Year'],df_major_repair['total'],color='b', label='Need Major Repair')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel(ylabel)
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
def total_schools_for_facilities_overall(output_filename, input_df):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil=input_df.loc[input_df['Main_Dimension'] == "School Facilities"]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','Year','total']]
df_enrolment_lt_50 = df_sum.loc[(df_sum['Sub_Dimension'] == "Enrolment <= 50")]
df_drinking_water = df_sum.loc[(df_sum['Sub_Dimension'] == "Schools with Drinking Water")]
df_girls_toilet = df_sum.loc[(df_sum['Sub_Dimension'] == "Schools with Girls' Toilet")]
df_ramp = df_sum.loc[(df_sum['Sub_Dimension'] == "Schools with Ramp")]
df_single_classroom = df_sum.loc[(df_sum['Sub_Dimension'] == "Single Classroom Schools")]
df_single_teacher = df_sum.loc[(df_sum['Sub_Dimension'] == "Single Teacher Schools")]
plt.plot(df_enrolment_lt_50['Year'], df_enrolment_lt_50['total'], color='r', label='Enrolment <= 50')
plt.plot(df_drinking_water['Year'], df_drinking_water['total'], color='g', label='Schools with Drinking Water')
plt.plot(df_girls_toilet['Year'], df_girls_toilet['total'], color='b', label='Schools with Girls\' Toilet')
plt.plot(df_ramp['Year'], df_ramp['total'], color='y', label='Schools with Ramp')
plt.plot(df_single_classroom['Year'], df_single_classroom['total'], color='c', label='Single Classroom Schools')
plt.plot(df_single_teacher['Year'], df_single_teacher['total'], color='m', label='Single Teacher Schools')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel('Number of schools')
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
app = Flask(__name__) app = Flask(__name__)
print(' ------------ Server Started ------------ ') print(' ------------ Server Started ------------ ')
...@@ -455,7 +242,7 @@ def get_distribution_for_teachers_by_educational_qualification(): ...@@ -455,7 +242,7 @@ def get_distribution_for_teachers_by_educational_qualification():
global distribution_teachers_by_educational_qualification, trend_teachers, distribution_teachers_by_category, teachers_by_category_summary, teachers_by_educational_qualification_summary, teachers_category, teachers_qualification global distribution_teachers_by_educational_qualification, trend_teachers, distribution_teachers_by_category, teachers_by_category_summary, teachers_by_educational_qualification_summary, teachers_category, teachers_qualification
teachers_qualification = form_value_to_sub_dimension_mapping[request.form['qualification']] teachers_qualification = form_value_to_sub_dimension_mapping[request.form['qualification']]
requested_year = int(request.form['year']) requested_year = int(request.form['year'])
distribution_teachers_by_educational_qualification = "img/distribution_teachers_by_educational_qualification_{}_{}.jpeg".format(request.form['category'], requested_year) distribution_teachers_by_educational_qualification = "img/distribution_teachers_by_educational_qualification_{}_{}.jpeg".format(request.form['qualification'], requested_year)
teachers_by_educational_qualification_summary = statewise_distribution(os.path.join(app.config['UPLOAD_FOLDER'], distribution_teachers_by_educational_qualification), final_df, requested_year, main_dimension = "Teachers by Educational Qualification", sub_dimension=teachers_qualification) teachers_by_educational_qualification_summary = statewise_distribution(os.path.join(app.config['UPLOAD_FOLDER'], distribution_teachers_by_educational_qualification), final_df, requested_year, main_dimension = "Teachers by Educational Qualification", sub_dimension=teachers_qualification)
return render_template('teachers.html', trend_teachers=trend_teachers, distribution_teachers_by_category=distribution_teachers_by_category, distribution_teachers_by_educational_qualification=distribution_teachers_by_educational_qualification, teachers_by_category_summary=teachers_by_category_summary, teachers_by_educational_qualification_summary=teachers_by_educational_qualification_summary, teachers_category=teachers_category, teachers_qualification=teachers_qualification) return render_template('teachers.html', trend_teachers=trend_teachers, distribution_teachers_by_category=distribution_teachers_by_category, distribution_teachers_by_educational_qualification=distribution_teachers_by_educational_qualification, teachers_by_category_summary=teachers_by_category_summary, teachers_by_educational_qualification_summary=teachers_by_educational_qualification_summary, teachers_category=teachers_category, teachers_qualification=teachers_qualification)
......
No preview for this file type
import pandas as pd
import numpy as np
import os
import glob
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
dict_summary={"top3":[],"bottom3":[]}
fig_size_w, fig_size_h = 8, 6
fig_size_tr_w, fig_size_tr_h = 8,6
def read_all_csv(path='./rawdata_csv/', extension='csv'):
result = glob.glob(path+'SRC_R*.{}'.format(extension))
df=None
for file in result:
if(df is None):
df=pd.read_csv(file)
else:
df=pd.concat([df,pd.read_csv(file)], ignore_index=True)
df_master=pd.read_csv("SRC_MasterData.csv")
df_master=df_master[['State_Code','State_Name','Total_Population']]
final_df = pd.merge(df, df_master, on='State_Code', how='inner')
final_df['total']=final_df[['Primary_Only','Primary_with_Upper_Primary','Primary with_Upper_Primary_Sec_H.Sec','Upper_Primary_Only','Upper_Primary_with_Sec_H.Sec','Primary_with_Upper_Primary_Sec','Upper_Primary_with_Sec']].sum(axis=1)
final_df['total_by_population']=final_df['total']/final_df['Total_Population']
final_df=final_df[["Year","State_Name","State_Code","Main_Dimension","Sub_Dimension","Total_Population",'total','total_by_population']]
return final_df
def statewise_distribution(output_filename, input_df, year, main_dimension, sub_dimension=''):
if sub_dimension:
df_filtered = input_df.loc[(input_df['Main_Dimension'] == main_dimension) & ((input_df['Sub_Dimension'] == sub_dimension))]
else:
df_filtered = input_df.loc[(input_df['Main_Dimension'] == main_dimension)]
df_filtered = df_filtered.loc[df_filtered['Year'] == year]
df_filtered = df_filtered[['Year','State_Name','total','total_by_population']]
df_sum = df_filtered.groupby(['State_Name','Year'],as_index = False).sum().sort_values("total_by_population",ascending=False)
fig = plt.figure(figsize=(fig_size_w,fig_size_h))
plt.xticks(rotation=90, ha="right")
plt.bar(df_sum['State_Name'],df_sum['total_by_population'], align='center')
plt.ylabel('Enrollements/Population')
list_states=list(df_sum['State_Name'])
dict_summary['top3']=[list_states[0],list_states[1],list_states[2]]
dict_summary['bottom3']=[list_states[-1],list_states[-2],list_states[-3]]
plt.savefig(output_filename)
plt.close(fig)
return dict_summary
def total_enrolment_by_category(output_filename, input_df, main_dimension, state_code, ylabel):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil = input_df.loc[input_df['Main_Dimension'] == main_dimension]
df_fil = df_fil.loc[(df_fil['State_Code'] == state_code)]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','State_Code','Year','total']]
df_govt=df_sum.loc[(df_sum['Sub_Dimension'] == "Government")]
df_pvt=df_sum.loc[(df_sum['Sub_Dimension'] == "Private")]
plt.plot(df_govt['Year'],df_govt['total'],color='r', label='Goverment')
plt.plot(df_pvt['Year'],df_pvt['total'],color='g', label='Private')
if not 'Rural' in main_dimension:
df_madr=df_sum.loc[(df_sum['Sub_Dimension'] == "Madrasas & Unrecognised")]
plt.plot(df_madr['Year'],df_madr['total'],color='b', label='Madrasas')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel(ylabel)
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
def total_teachers_by_main_dimension(output_filename, input_df, main_dimension, state_code):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil = input_df.loc[input_df['Main_Dimension'] == main_dimension]
df_fil = df_fil.loc[(df_fil['State_Code'] == state_code)]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','State_Code','Year','total']]
if 'Category' in main_dimension:
df_govt = df_sum.loc[(df_sum['Sub_Dimension'] == "Government")]
df_pvt = df_sum.loc[(df_sum['Sub_Dimension'] == "Private")]
df_madr = df_sum.loc[(df_sum['Sub_Dimension'] == "Madrasas & Unrecognised")]
plt.plot(df_govt['Year'],df_govt['total'],color='r', label='Goverment')
plt.plot(df_pvt['Year'],df_pvt['total'],color='g', label='Private')
plt.plot(df_madr['Year'],df_madr['total'],color='b', label='Madrasas')
else:
df_bel_sec = df_sum.loc[(df_sum['Sub_Dimension'] == "Below Secondary")]
df_sec = df_sum.loc[(df_sum['Sub_Dimension'] == "Secondary")]
df_hs = df_sum.loc[(df_sum['Sub_Dimension'] == "Higher Secondary")]
df_grad = df_sum.loc[(df_sum['Sub_Dimension'] == "Graduate")]
df_pg = df_sum.loc[(df_sum['Sub_Dimension'] == "Post Graduate")]
df_phd = df_sum.loc[(df_sum['Sub_Dimension'] == "M.Phil / Ph.D")]
plt.plot(df_bel_sec['Year'],df_bel_sec['total'],color='r', label='Below Secondary')
plt.plot(df_sec['Year'],df_sec['total'],color='g', label='Secondary')
plt.plot(df_hs['Year'],df_hs['total'],color='b', label='Higher Secondary')
plt.plot(df_grad['Year'],df_grad['total'],color='y', label='Graduate')
plt.plot(df_pg['Year'],df_pg['total'],color='c', label='Post Graduate')
plt.plot(df_phd['Year'],df_phd['total'],color='m', label='M.Phil / Ph.D')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel('Number of Teachers')
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
def total_classrooms_by_trend(output_filename, input_df, state_code):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil=input_df.loc[input_df['Main_Dimension'] == "Total Classrooms"]
df_fil=df_fil.loc[(df_fil['State_Code'] == state_code)]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','State_Code','Year','total']]
df_good_cond = df_sum.loc[(df_sum['Sub_Dimension'] == "Good Condition")]
df_minor_repair = df_sum.loc[(df_sum['Sub_Dimension'] == "Need Minor Repair")]
df_major_repair = df_sum.loc[(df_sum['Sub_Dimension'] == "Need Major Repair")]
plt.plot(df_good_cond['Year'],df_good_cond['total'],color='r', label='Good Condition')
plt.plot(df_minor_repair['Year'],df_minor_repair['total'],color='g', label='Need Minor Repair')
plt.plot(df_major_repair['Year'],df_major_repair['total'],color='b', label='Need Major Repair')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel('Number of classrooms')
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
def total_schools_for_facilities(output_filename, input_df, state_code):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil=input_df.loc[input_df['Main_Dimension'] == "School Facilities"]
df_fil=df_fil.loc[(df_fil['State_Code'] == state_code)]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','State_Code','Year','total']]
df_enrolment_lt_50 = df_sum.loc[(df_sum['Sub_Dimension'] == "Enrolment <= 50")]
df_drinking_water = df_sum.loc[(df_sum['Sub_Dimension'] == "Schools with Drinking Water")]
df_girls_toilet = df_sum.loc[(df_sum['Sub_Dimension'] == "Schools with Girls' Toilet")]
df_ramp = df_sum.loc[(df_sum['Sub_Dimension'] == "Schools with Ramp")]
df_single_classroom = df_sum.loc[(df_sum['Sub_Dimension'] == "Single Classroom Schools")]
df_single_teacher = df_sum.loc[(df_sum['Sub_Dimension'] == "Single Teacher Schools")]
plt.plot(df_enrolment_lt_50['Year'], df_enrolment_lt_50['total'], color='r', label='Enrolment <= 50')
plt.plot(df_drinking_water['Year'], df_drinking_water['total'], color='g', label='Schools with Drinking Water')
plt.plot(df_girls_toilet['Year'], df_girls_toilet['total'], color='b', label='Schools with Girls\' Toilet')
plt.plot(df_ramp['Year'], df_ramp['total'], color='y', label='Schools with Ramp')
plt.plot(df_single_classroom['Year'], df_single_classroom['total'], color='c', label='Single Classroom Schools')
plt.plot(df_single_teacher['Year'], df_single_teacher['total'], color='m', label='Single Teacher Schools')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel('Number of schools')
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
def main_dimension_overall(output_filename, input_df, main_dimension, ylabel):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil=input_df.loc[input_df['Main_Dimension'] == main_dimension]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','Year','total']]
if 'Classrooms' not in main_dimension:
df_govt=df_sum.loc[(df_sum['Sub_Dimension'] == "Government")]
df_pvt=df_sum.loc[(df_sum['Sub_Dimension'] == "Private")]
df_madr=df_sum.loc[(df_sum['Sub_Dimension'] == "Madrasas & Unrecognised")]
plt.plot(df_govt['Year'],df_govt['total'],color='r', label='Goverment')
plt.plot(df_pvt['Year'],df_pvt['total'],color='g', label='Private')
plt.plot(df_madr['Year'],df_madr['total'],color='b', label='Madrasas')
else:
df_good_cond = df_sum.loc[(df_sum['Sub_Dimension'] == "Good Condition")]
df_minor_repair = df_sum.loc[(df_sum['Sub_Dimension'] == "Need Minor Repair")]
df_major_repair = df_sum.loc[(df_sum['Sub_Dimension'] == "Need Major Repair")]
plt.plot(df_good_cond['Year'],df_good_cond['total'],color='r', label='Good Condition')
plt.plot(df_minor_repair['Year'],df_minor_repair['total'],color='g', label='Need Minor Repair')
plt.plot(df_major_repair['Year'],df_major_repair['total'],color='b', label='Need Major Repair')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel(ylabel)
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
def total_schools_for_facilities_overall(output_filename, input_df):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil=input_df.loc[input_df['Main_Dimension'] == "School Facilities"]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','Year','total']]
df_enrolment_lt_50 = df_sum.loc[(df_sum['Sub_Dimension'] == "Enrolment <= 50")]
df_drinking_water = df_sum.loc[(df_sum['Sub_Dimension'] == "Schools with Drinking Water")]
df_girls_toilet = df_sum.loc[(df_sum['Sub_Dimension'] == "Schools with Girls' Toilet")]
df_ramp = df_sum.loc[(df_sum['Sub_Dimension'] == "Schools with Ramp")]
df_single_classroom = df_sum.loc[(df_sum['Sub_Dimension'] == "Single Classroom Schools")]
df_single_teacher = df_sum.loc[(df_sum['Sub_Dimension'] == "Single Teacher Schools")]
plt.plot(df_enrolment_lt_50['Year'], df_enrolment_lt_50['total'], color='r', label='Enrolment <= 50')
plt.plot(df_drinking_water['Year'], df_drinking_water['total'], color='g', label='Schools with Drinking Water')
plt.plot(df_girls_toilet['Year'], df_girls_toilet['total'], color='b', label='Schools with Girls\' Toilet')
plt.plot(df_ramp['Year'], df_ramp['total'], color='y', label='Schools with Ramp')
plt.plot(df_single_classroom['Year'], df_single_classroom['total'], color='c', label='Single Classroom Schools')
plt.plot(df_single_teacher['Year'], df_single_teacher['total'], color='m', label='Single Teacher Schools')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel('Number of schools')
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment