<jupyter_start><jupyter_text><jupyter_code>def mostrar_paleta_de_cores(cmaps):
  gradient = np.linspace(0, 1, 256)
  gradient = np.vstack((gradient, gradient))

  def plot_color_gradients(cmap_category, cmap_list):
    # Create figure and adjust figure height to number of colormaps
    nrows = len(cmap_list)
    figh = 0.35 + 0.15 + (nrows + (nrows - 1) * 0.1) * 0.22
    fig, axs = plt.subplots(nrows=nrows + 1, figsize=(6.4, figh))
    fig.subplots_adjust(top=1 - 0.35 / figh, bottom=0.15 / figh,
                        left=0.2, right=0.99)
    axs[0].set_title(cmap_category + ' colormaps', fontsize=14)

    for ax, name in zip(axs, cmap_list):
        ax.imshow(gradient, aspect='auto', cmap=plt.get_cmap(name))
        ax.text(-0.01, 0.5, name, va='center', ha='right', fontsize=10,
                transform=ax.transAxes)

    # Turn off *all* ticks & spines, not just the ones with colormaps.
    for ax in axs:
        ax.set_axis_off()


  for cmap_category, cmap_list in cmaps.items():
    plot_color_gradients(cmap_category, cmap_list)

  plt.show()
def cria_a_coluna_regiao(df):
  nome_regioes = {'1': 'Norte', '2': 'Nordeste', '3': 'Sudeste', '4': 'Sul', '5': 'Centro-Oeste'}
  df["Regiao"] = list(map(lambda estado_index: nome_regioes[estado_index[0]] ,  df.index))
milhao = 1e6<jupyter_output><empty_output><jupyter_text>Desafios aula 3 do modulo 1<jupyter_code>import pandas as pd
import matplotlib.pyplot as plt
from collections import OrderedDict
import numpy as np

# pandas configuracao
pd.options.display.float_format  ="{:.2f}".format
uri = "https://raw.githubusercontent.com/alura-cursos/agendamento-hospitalar/main/dados/A160324189_28_143_208.csv"

dados = pd.read_csv(uri, 
                    encoding="ISO-8859-1",
                    skiprows = 3, sep=";", 
                    skipfooter=12,
                    thousands=".",
                    decimal=",")
colunas_usaveis = dados.mean().index.tolist()
colunas_usaveis.insert(0, "Unidade da Federação")
dados_usaveis = dados[colunas_usaveis]
dados_usaveis = dados_usaveis.set_index("Unidade da Federação")
dados_usaveis = dados_usaveis.drop("Total", axis=1)<jupyter_output><empty_output><jupyter_text>Desafio 01: Escolher uma palete de cores mais adequada do matplotlib.<jupyter_code>cmaps = OrderedDict()
cmaps['Qualitative'] = ['Pastel1', 'Pastel2', 'Paired', 'Accent',
                        'Dark2', 'Set1', 'Set2', 'Set3',
                        'tab10', 'tab20', 'tab20b', 'tab20c']
mostrar_paleta_de_cores(cmaps)
dados_usaveis.T.plot(figsize=(12, 8), cmap = cmaps['Qualitative'][11])
plt.legend(title= "Estados", loc ='lower right', bbox_to_anchor=(1.25, 0.05))
plt.show()<jupyter_output><empty_output><jupyter_text>Desafio 02: Adicionar uma coluna mostrando a região (Norte, Nodeste, Sul, Suldeste e Centro-Oeste) de cada estado.<jupyter_code>dados_usaveis_com_regiao = dados_usaveis.copy()
# solucao 01
regiao = []
for id in dados_usaveis.index:
  if id.startswith("1"):
    regiao.append("Norte")
  elif id.startswith("2"):
    regiao.append("Nordeste")
  elif id.startswith("3"):    
    regiao.append("Sudeste")
  elif id.startswith("4"):
    regiao.append("Sul")
  elif id.startswith("5"):
    regiao.append("Centro-Oeste")
dados_usaveis_com_regiao["Regiao"] = regiao
dados_usaveis_com_regiao2 = dados_usaveis.copy()

# solucao 02
nome_regioes = {'1': 'Norte', '2': 'Nordeste', '3': 'Sudeste', '4': 'Sul', '5': 'Centro-Oeste'}
dados_usaveis_com_regiao["Regiao"] = list(map(lambda estado_index: nome_regioes[estado_index[0]] ,  dados_usaveis.index))
dados_usaveis_com_regiao2 = dados_usaveis_com_regiao[["Regiao"] + dados_usaveis.columns[:-1].tolist()] # colocando a regiao na primeira coluna
dados_usaveis_com_regiao.head(2)<jupyter_output><empty_output><jupyter_text>Desafio 03: Formatar o gráfico de custos por mês dos 5 estados, deixando ele agradável (Bonitão, segundo o Gui)<jupyter_code>dados_usaveis["Total"] = dados_usaveis.sum(axis=1)
ordenado_por_total = dados_usaveis.sort_values("Total", ascending=False)/milhao
ordenado_por_total = ordenado_por_total.drop("Total", axis=1)
colunas_interessadas = ordenado_por_total.columns[6:]
ordenado_por_total = ordenado_por_total[colunas_interessadas]
ordenado_por_total.head(5)
ax = ordenado_por_total.head(5).T.plot(figsize=(12, 8))

ax.set_xlim(0, 150)
ax.set_ylim(0, 350)
ax.set_title("Serie histórica de gastos de saúde por Estados", fontsize=20)
ax.set_ylabel("Custo (Milhões R$)", fontsize=18)
ax.grid(color='silver', linestyle='--')

# tirando o numero da frente do nome
nomes = ordenado_por_total.head(5).index
nomes = [ nome[3:] for nome in nomes ]
ax.legend(title=None, ncol = 1, fontsize=12, labels = nomes, shadow = True
         , facecolor = "silver", edgecolor = 'silver' )
plt.show()<jupyter_output><empty_output><jupyter_text>Desafio 04: Adicione o seu estado aos 5 estados plotados anteriormente O meu é Rio de Janeiro, portanto eu escolhi um outro, no caso o Estado da Bahia<jupyter_code>ordenado_por_total.head(5).T.plot(figsize=(12, 8), ls ="--")
ax = ordenado_por_total.loc["29 Bahia"].T.plot(figsize=(12, 8),
                            color="black",
                            lw=2)

ax.set_xlim(0, 150)
ax.set_ylim(0, 350)
ax.set_title("Serie histórica de gastos de saúde por Estados", fontsize=20)
ax.set_ylabel("Custo (Milhões R$)", fontsize=18)
ax.grid(color='silver', linestyle='--')

# tirando o numero da frente do nome
nomes = ordenado_por_total.head(5).index.tolist() + ["29 Bahia"]
nomes = [ nome[3:] for nome in nomes ]
ax.legend(title=None, ncol = 2, fontsize=12, labels = nomes, shadow = True
         , facecolor = "silver", edgecolor = 'silver' )
plt.show()<jupyter_output><empty_output><jupyter_text>Desafio 06: Plotar o gráfico dos custos apenas dos estados da região sudeste e verificar se os picos de 2013/Fev teve comportamento similar em todos os demais estados da região<jupyter_code>regiao_sudeste = dados_usaveis_com_regiao.query("Regiao == 'Sudeste'").drop("Regiao", axis=1)
#dados_usaveis_com_regiao[dados_usaveis_com_regiao["Regiao"] == "Sudeste"].drop("Regiao", axis=1) # opecao alternativa
colunas_interessadas = ordenado_por_total.columns[5:]
regiao_sudeste = regiao_sudeste[colunas_interessadas]/ milhao
ax = regiao_sudeste.loc[:,'2012/Jan':'2014/Jan'].T.plot(figsize=(12, 8))

ax.set_xlim(0, 24)
ax.set_ylim(0, 350)
#
labels = regiao_sudeste.loc[:,'2012/Jan':'2014/Jan'].columns
x = range(0, len(labels))
plt.xticks(x, labels, rotation=90)

#ax.set_xticklabels(rotation=45)
#ax.set_xticklabels(xlabels, rotation=45)
ax.set_title("Serie histórica de gastos de saúde por Estados", fontsize=20)
ax.set_ylabel("Custo (Milhões R$)", fontsize=18)
ax.grid(color='silver', linestyle='--')

# tirando o numero da frente do nome
nomes = regiao_sudeste.head(5).index
nomes = [ nome[3:] for nome in nomes ]
ax.legend(title=None, ncol = 1, fontsize=12, labels = nomes, shadow = True
         , facecolor = "silver", edgecolor = 'silver' )


plt.show()<jupyter_output><empty_output><jupyter_text>O grafico apresenta apenas dos 1 pico realmente precepitivel no periodo de Jan/2012 a Jan/2014. Este pico está no Estado do Rio de Janeiro no meses de 2013/Jan.Os picos no Estado de São Paulo parece ter um natureza completamente diferentes do Rio de Janeiro.   Desafio 07: Adicionar seu estado escolhido novamente, deixe o gráfico informativo e tire conclusões sobre seus estados comparando com os demais. Tire suas conclusões e compartilhe com a gente.<jupyter_code>ax = regiao_sudeste.loc[:,'2012/Jan':'2014/Jan'].T.plot(figsize=(12, 8), ls ="--")
ax = ordenado_por_total.loc["29 Bahia",'2012/Jan':'2014/Jan'].T.plot(figsize=(12, 8),
                            color="black",
                            lw=2)
ax.set_xlim(0, 24)
ax.set_ylim(0, 350)
#
labels = regiao_sudeste.loc[:,'2012/Jan':'2014/Jan'].columns
x = range(0, len(labels))
plt.xticks(x, labels, rotation=90)
ax.set_title("Serie histórica de gastos de saúde por Estados", fontsize=20)
ax.set_ylabel("Custo (Milhões R$)", fontsize=18)
ax.grid(color='silver', linestyle='--')

# tirando o numero da frente do nome
nomes = regiao_sudeste.index.tolist() + ["29 Bahia"]
nomes = [ nome[3:] for nome in nomes ]
ax.legend(title=None, ncol = 2, fontsize=12, labels = nomes, shadow = True
         , facecolor = "silver", edgecolor = 'silver' )


plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1411778817320379, 'fraction_numerical': 0.0368237975290872, 'mean_word_length': 4.703146374829001, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 33, 'https://': 1, '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': '8', 'dir': 'jupyter-structured-clean-dedup', 'id': '151689', 'license': 'MIT', 'n_tokens_mistral': 3442, 'n_tokens_neox': 3209, 'n_words': 671, 'path': 'modulo1/desafios/Desafio_aula3_modulo1.ipynb', 'repo_name': 'HenriqueCCdA/bootCampAluraDataScience', 'size': '8337'}