class Tables(): def __init__(self): self.kategorie = Categories() # Tabela wydatków zeros_exp = [0 for i in range(len(self.kategorie.exp_categories))] dict_exp = { 'Planowane': zeros_exp, 'Rzeczywiste': zeros_exp, 'Różnica': zeros_exp, 'St. realizacji budżetu (%)': zeros_exp } self.df_exp = pd.DataFrame(dict_exp, index=self.kategorie.exp_categories) # Tabela przychodów zeros_inc = [0 for j in range(len(self.kategorie.inc_categories))] dict_inc = { 'Planowane': zeros_inc, 'Rzeczywiste': zeros_inc, 'Różnica': zeros_inc, 'St. realizacji budżetu (%)': zeros_inc } self.df_inc = pd.DataFrame(dict_inc, index=self.kategorie.inc_categories) # Dane szczegółowe wydatków zeros_details = [0 for k in range(31)] dict_details = {} for i in range(len(self.kategorie.exp_categories)): dict_details[self.kategorie.exp_categories[i]] = zeros_details self.df_details = pd.DataFrame(dict_details, index=[x for x in range(1, 32)]) def add_inc_cat(self, category): self.kategorie.add_inc_category(category) self.df_inc = self.df_inc.append( { 'Planowane': 0, 'Rzeczywiste': 0, 'Różnica': 0, 'St. realizacji budżetu (%)': 0 }, ignore_index=True) dict_names = {} for i in range(len(self.kategorie.inc_categories)): dict_names[i] = self.kategorie.inc_categories[i] self.df_inc.rename(index=dict_names, inplace=True) def add_exp_cat(self, category): self.kategorie.add_exp_category(category) self.df_exp = self.df_exp.append( { 'Planowane': 0, 'Rzeczywiste': 0, 'Różnica': 0, 'St. realizacji budżetu (%)': 0 }, ignore_index=True) dict_names1 = {} for i in range(len(self.kategorie.exp_categories)): dict_names1[i] = self.kategorie.exp_categories[i] self.df_exp.rename(index=dict_names1, inplace=True) self.df_details[category] = 0 def show_df_exp(self): return self.df_exp def show_df_inc(self): return self.df_inc def show_df_details(self): return self.df_details def show_pieplot(self): df_pom = self.df_exp[['Planowane', 'Rzeczywiste']] df_pom.plot.pie(subplots=True, figsize=(10, 5), legend=True, autopct='%.2f', title='Wydatki') #plt.show(block=False) def show_barplot(self): sums_real = [self.df_inc.sum()[1], self.df_exp.sum()[1]] sums_plan = [self.df_inc.sum()[0], self.df_exp.sum()[0]] index = ['Przychody', 'Wydatki'] df = pd.DataFrame({ 'Planowane': sums_plan, 'Rzeczywiste': sums_real }, index=index) df.plot.bar(rot=0, title='Porównanie wydatków i przychodów') #plt.show(block=False) def show_selected_days(self, a, b): return self.df_details[a - 1:b]
def test_add_category(self): Categories.add_exp_category(self.kategorie, 'Prezenty') self.assertEqual(Categories.show_exp_categories(self.kategorie), [ 'Mieszkanie', 'Jedzenie', 'Transport', 'Długi', 'Opieka zdrowotna', 'Dzieci', 'Rozrywka', 'Oszczędności', 'Inne', 'Prezenty' ])