<jupyter_start><jupyter_text>Visualización de aportaciones a la escuelitaLo que necesito es que los posibles donadores vean que no es necesario donar "mucho" dinero, pero sí la constancia mensual. Por ejemplo, observa que el mayor monto lo donamos gente que damos una cantidad pequeña al mes -un cafe y un pastelito- Quisiera resaltar eso para convencer a más donadores que que no es necesario hacer un gran desembolso. Supongo que aplicando alguno de esos programas "mágicos" que tú tienes basta para mostrarlo de un vistazo. La presentación consta de sólo 16 diapositivas, entonces es necesaria la síntesis. En ella planteo la historia de este proyecto que lleva ya 20 años y que actualmente atiende a 130 niños y niñas: preescolar y primaria.<jupyter_code>import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from itertools import zip_longest
df = pd.read_csv("MontosAportacionEscuelita.csv")
df = df.drop('Aportacion anual', axis=1)
df
bins = pd.cut(df['Monto aportacion mensual'], [0, 250, 500, 1000, 1500, 3000])
agg = df.groupby(bins).sum().drop('Monto aportacion mensual', axis=1)
agg
x = [1,2,3,4,5]
width = 1
color = ['#1D9A6C','#20648B', '#2C237D', '#62256F', '#622640']

umbrales = [250, 500, 1000, 1500, 3000]
bins = [[] for i in umbrales]

for row in df.iterrows():
    value, freq = row[1][0], row[1][1]
    for i, umb in enumerate(umbrales):
        if value <= umb: 
            bins[i] += [value]*freq
            break
bins = [sorted(i, reverse = True) for i in bins]


plt.figure(figsize=(9,6), dpi=300)
bottom = np.zeros(5)
for row in zip_longest(*bins,fillvalue=np.nan):
    row = np.array(row)
    plt.bar(x, row, bottom=bottom, color=color, width=width, linewidth=1, edgecolor='black')
    bottom+=row
    
plt.xticks(x, ['$150 a\n$250', '$300 a\n$500', '$600 a\n$1000','$1100 a\n$1500','$3000 \no mas'])
plt.title('Tres de cada cinco pesos de La Buena Tierra\nprovienen de aportaciones de entre \$150 y \$500')
plt.xlabel('Monto aportado por persona')
plt.ylabel('Aportación mensual')
#plt.show()
plt.savefig('DonacionesEscuelita-1.png')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12132701421800948, 'fraction_numerical': 0.058767772511848344, 'mean_word_length': 4.674731182795699, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '559885', 'license': 'MIT', 'n_tokens_mistral': 866, 'n_tokens_neox': 759, 'n_words': 256, 'path': 'MAE-viz.ipynb', 'repo_name': 'mar-esther23/random-python', 'size': '2110'}