if isinstance(value, list): data = [key if d in value else d for d in data if d] unique_values = np.unique(np.array(data)) print(unique_values) plot_data = dict() for item in unique_values: plot_data[item] = 0 if 'Not Disclosed' in plot_data.keys(): plot_data.pop('Not Disclosed') plot_data['Not Disclosed'] = 0 for item in data: if isinstance(item, float) and math.isnan(item): plot_data['Not Disclosed'] += 1 else: plot_data[item] += 1 self.plot_data = plot_data if __name__ == '__main__': # Load Data # df = pd.read_csv("../Data/MainData.csv") temp_headers = rename_header(df) controller = FigureController(df) controller.process_data(**temp_headers) controller.draw_figure_bar_horizontally(save=True, height=0.25, exclude_fields=['Not Disclosed'])
for item in self.dataframe['professional_experience'].tolist(): if isinstance(item, float) and math.isnan(item): plot_data['Not Disclosed'] += 1 else: plot_data[item] += 1 self.plot_data = plot_data def draw_figure(self, save=False, **kwargs): objects = self.plot_data.keys() age = np.arange(len(objects)) age_frequency = self.plot_data.values() age_frequency = [ af * 100 / self.num_of_respondents for af in age_frequency ] plt.bar(age, age_frequency, width=0.5, align='center', alpha=0.5) plt.xticks(age, objects) plt.xticks(rotation=90) super(AgeFigureController, self).draw_figure(save=save) if __name__ == '__main__': # Load Data # df = pd.read_csv("../Data/MainData.csv") rename_header(df) controller = AgeFigureController(df) controller.process_data() controller.draw_figure(save=True)