<jupyter_start><jupyter_text>**Introdução a visualização de dados** Visualizção de dados é uma área da ciência de dados por si só, muitas vezes é chamada de dataviz, e é de enorme importância para que um projeto seja bem sucedido e bem comunicado!Além disso, a habilidade de visualizar os dados ajuda muito no processo de **EDA**, do inglês *exploratory data analysis*, como discutimos anteriormente, afinal, representações visuais dos dados sempre são mais simples e intuitivas de serem interpretadas!Então, os principais objetivos do dataviz são:- Auxiliar na **EDA**;- Auxiliar na apresentação de resultados.Vamos agora aprender algumas ferramentas de dataviz!<jupyter_code>import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt<jupyter_output><empty_output><jupyter_text>O **matplotlib** é a biblioteca mais fundamental para a geração de figuras e gráficos em Python. Ela permite a geração de diferentes tipos de gráfico, como gráficos de linha, de barras, de pizza, de dispersão e histogramas.Além disso, a matplotlib permite personalizar os gráficos de diversas maneiras, acrescentando múltiplas fontes de dados, trocando cor, formato dos marcadores ou gerando diversos gráficos na mesma imagem.--- O gráfico escolhido depende do que quer ser mostrado/enfatizado e das variáveis disponíveis. No momento vamos focar em como fazer os gráficos simples.  **Gráfico de linha**  - explicar [canvas](https://matplotlib.org/stable/tutorials/intermediate/artists.html)<jupyter_code>fig, ax = plt.subplots()<jupyter_output><empty_output><jupyter_text>- Mostrar gráfico de uma função qualquer.- Colocar um marker e motrar- Explicar plt.show<jupyter_code>fig, ax = plt.subplots()

# plot da função x^2, com x de 1 a 5
pontos_x = [1, 2, 3, 4, 5]
# y = x^2
pontos_y = [1, 4, 9, 16, 25]


# função que faz o plot dos pontos
# argumentos: x, y, marcador (opcional)
f = ax.plot(pontos_x, pontos_y, marker="o")<jupyter_output><empty_output><jupyter_text>- Explicar densidade de pontos<jupyter_code>fig, ax = plt.subplots()

# lista com 100 pontos
pontos_x = [i for i in range(100)]

# y = x^2
pontos_y = [i**2 for i in pontos_x]

ax.plot(pontos_x, pontos_y, marker="o")
plt.show()<jupyter_output><empty_output><jupyter_text>- explicar que cada método tem os seus parâmetros.- explicar que podemos setar o tamanho do canvas.- explicar que podemos ter diferentes gráficos em um mesmo axis.- explicar legend.<jupyter_code>fig, ax = plt.subplots(figsize=(12,4))

# array com 20 pontos igualmente espaçados entre 1 e 5
pontos_x = [i for i in range(100)]
# y = x^2
pontos_y = [x**2 for x in pontos_x]
ax.plot(pontos_x, pontos_y, linestyle="--", color="green", linewidth=2.5, label="ola")

pontos_y2 = [4*i**2 + 2*i - 1000 for i in pontos_x]
ax.plot(pontos_x, pontos_y2, linestyle="-", color="red", linewidth=1.5, label="limao")
plt.legend()
plt.show()<jupyter_output><empty_output><jupyter_text>- explicar diferentes axis em um mesmo canvas.<jupyter_code>fig, ax = plt.subplots(1,2, figsize=(12,4))

pontos_x = [i for i in range(100)]
pontos_y = [x**2 for x in pontos_x]

ax[1].plot(pontos_x, pontos_y, linestyle="--", color="green", linewidth=2.5)
plt.show()
fig, ax = plt.subplots(2,2, figsize=(12,4))

pontos_x = [i for i in range(100)]
# y = x^2
pontos_y = [x**2 for x in pontos_x]

ax[1,0].plot(pontos_x, pontos_y, linestyle="--", color="green", linewidth=2.5)
ax[0,1].plot(pontos_x, pontos_y, linestyle=":", color="red", linewidth=5.5)

plt.show()<jupyter_output><empty_output><jupyter_text>- explicar axis label- explicar title- explicar tight_layout- explicar limites dos axis (set_xlim....)<jupyter_code>fig, ax = plt.subplots(2,2, figsize=(12,4))

pontos_x = [i for i in range(100)]
# y = x^2
pontos_y = [x**2 for x in pontos_x]

ax[1,0].plot(pontos_x, pontos_y, linestyle="--", color="green", linewidth=2.5)
ax[0,1].plot(pontos_x, pontos_y, linestyle=":", color="red", linewidth=5.5)

ax[0,1].set_xlabel("teste2")
ax[1,0].set_xlabel("teste1")

ax[0,1].set_ylabel("testey2")
ax[1,0].set_ylabel("testey1")

# ax[0,1].set_title("title2")
# ax[1,0].set_title("title1")

plt.suptitle("Supertitulo")
# plt.tight_layout()
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13034085453672586, 'fraction_numerical': 0.027604416706673067, 'mean_word_length': 5.742718446601942, 'pattern_counts': {'":': 2, '<': 29, '<?xml version=': 0, '>': 29, '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': '7', 'dir': 'jupyter-structured-clean-dedup', 'id': '222440', 'license': 'MIT', 'n_tokens_mistral': 1736, 'n_tokens_neox': 1669, 'n_words': 462, 'path': 'semana_2/intro_matplot_gabarito.ipynb', 'repo_name': 'rocabrera/curso_ml', 'size': '4166'}