Visualizar Dados com Python
Você, depois de fazer sua primeira ferramenta de visualização de dados ^
Neste workshop, você usará Python para criar gráficos básicos e visualizações com dados reais. Primeiro, começamos com visualizações gráficas mais simples e aprendemos como torná-las mais personalizadas e complicadas! Você pode desenhar um gráfico à mão sempre que quiser, mas por que não aprender a programar um! Você aprenderá e usará as bibliotecas matplotlib, pandas e numpy, para que possa criar qualquer gráfico ou visualização com que sonhar!
Esse é um exemplo de algo que você terá programado após o workshop:
Exemplo do código final:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,2,100)
fig,ax= plt.subplots()
ax.plot(x,x,label='Dormir')
ax.plot(x,x**2,label='Se preocupar que o céu esteja caindo...')
ax.plot(x,x**3,label='Ser uma estrela')
ax.set_xlabel('Tempo') #adiciona descrição do eixo X
ax.set_ylabel('Ano') #adiciona descrição do eixo Y
ax.set_title("Enredo do Chicken Little") #adiciona um título
ax.legend() #adiciona legenda ao gráfico
Começando!
Comece acessando o site do Jupyter. Quando você acessar o site, verá algo assim…
Clique no botão do meio (Try JupyterLab)!
O Jupyter criará um ambiente de programação direto no seu navegador! Após alguns segundos, você verá o seguinte:
Clique no botão +
no canto superior esquerdo e selecione Notebook -> Python 3.
Você deverá ver um novo bloco de notas Jupyter sem título.
Nunca usou o Jupyter? Essa aqui é uma introdução ao Jupyter!
Fazendo upload de bibliotecas!
Primeiro, precisamos fazer upload das bibliotecas que usaremos para este projeto. Cada linguagem de programação tem diferentes “classes” que você precisa usar para acessar variáveis específicas. A mesma coisa ocorre no Python, mas, em vez disso, elas são conhecidas como bibliotecas.
Neste workshop usaremos as bibliotecas pandas, numpy e matplotlib
Pandas: Não é o animal peludo em que você está pensando; o pandas é uma maneira fácil e eficiente de usar análise de dados open source.
Matplotlib: É uma biblioteca de inserção que usa uma extensão matemática numérica Numpy.
Numpy: É uma biblioteca Python que é muito boa com arrays e funções matemáticas difíceis.
Inserção de linha simples!
Nota: Personalize suas inserções e gráficos! (Descrições, valores, etc.)
Na primeira linha do seu novo bloco de notas Jupyter sem título, adicione o seguinte código:
import pandas as pd
import matplotlib.pyplot as plt
O código acima importa o Pandas e a Matplotlib para este projeto para que possamos ter acesso a certas variáveis e métodos disponíveis nessas bibliotecas!
Debaixo dessas duas linhas, adicione:
x=[x*2 for x in range (100)]
y=[y*2 for y in range (100)]
plt.plot(x,y)
Este trecho de código criará os intervalos em nossos eixos x e y e plt.plot
representará os pontos que queremos! Neste exemplo, não há pontos específicos sendo inseridos, estamos apenas fazendo uma função linear básica.
Depois, adicione:
#mostra gráfico
plt.show()
Esta linha mostrará o gráfico e os pontos que traçamos, basicamente dando ao usuário uma saída.
plt.show()
-> mostra a saída do gráfico.plt.plot(x, y)
-> insere os pontos.
Clique no botão Run próximo ao topo de sua janela.
Você deve ver algo parecido com isto…
Em uma nova seção do seu bloco de notas, adicione:
import pandas as pd
import matplotlib.pyplot as plt
import random
Este código acima importa as bibliotecas novamente. Observe que importamos outra biblioteca chamada random
. Isso permitirá que um número aleatório seja escolhido cada vez que tivermos um valor y
. Você poderá ver isso mais tarde em nosso código!
Em seguida, adicione:
x=['Tacos','Burritos','Churros']
y=[random.randint(0,30), random.randint(0,90),random.randint(0,10)]
plt.bar(x,y)
plt.show()
O código acima nomeia cada uma das barras (define os eixos x e y), cria valores aleatórios de Y usando `random.randint ()`
, insere nossos pontos e mostra o gráfico!
Ao clicar no botão Run novamente, você verá algo assim:
Vamos complicar um pouco mais!
Vamos fazer um gráfico mais personalizado usando três funções diferentes.
Passo um!
Tenho certeza que todos vocês já adivinharam hehe, importem suas bibliotecas!!!!!!!!!!
import matplotlib.pyplot as plt
import numpy as np
Veja que vamos utilizar a numpy agora! :)
Espera aí… o que a matplotlib faz?
Estou tãããão feliz que você perguntou!
Para criar o gráfico que queremos fazer, usaremos a biblioteca matplotlib! Que vai…
-
Criar um esboço
-
Criar eixos
-
Criar intervalos de eixos
-
Permitir-nos traçar pontos
Ok, agora vamos voltar onde estávamos…
Certifique-se de que suas bibliotecas sejam importadas!
Passo dois!
O código abaixo cria o esqueleto de um gráfico, insere os pontos e mostra a saída!
#cria figura(esqueleto do gráfico)
fig,ax=plt.subplots()
#insere os pontos
ax.plot([1,2,3,4],[1,4,2,3])
plt.show()
Algo que você deve ter notado é o uso de fig, ou também conhecido como figura.
No código acima, e sempre que quiser criar um gráfico, você usará a fig. Por exemplo, em nosso código até agora, usamos…
fig,ax=plt.subplots()
…que cria uma figura em apenas um eixo.
Essas aqui são algumas maneiras em que você pode utilizar as figs:
fig=plt.figure() #cria gráfico vazio que retorna um número
fig,ax=plt.subplots(2,2) #Cria 2 x 2 gráficos de figues
Verifique no seu Editor Jupyter!
Passo três!
Certifique-se de que as bibliotecas foram carregadas, volte para a Etapa Um, se necessário.
Defina o espaçamento do seu eixo x e y…
x=np.linspace(0,2,100)
*Lembre-se de importar as bibliotecas!
Etapa Quatro!
Crie uma figura! Olhe para cima para ver como escrever esse código … Aqui vai uma dica:
fig,ax=plt._____()
Ainda com dúvidas? No lugar dos underscores, substitua por fig,ax=plt.subplots()
.
O seu gráfico deve parecer com isso…
Agora podemos inserir algumas linhas, nesta parte personalize como quiser!
Este exemplo terá 3 funções básicas (linear, quadrada e ao cubo), mas você pode imaginá-la da maneira que quiser!
ax.plot(x,x,label='Dormir')
ax.plot(x,x**2,label='Se preocupar que o céu esteja caindo...')
ax.plot(x,x**3,label='Ser uma estrela')
label=
é o nome da sua linha
ax.plot
vai inserir seus pontos/linhas
Seu gráfico deve se parecer com esse:
Passo 6!
Toques finais!
ax.set_xlabel('Tempo') #adiciona descrição do eixo X
ax.set_ylabel('Ano') #adiciona descrição do eixo Y
ax.set_title("Enredo do Chicken Little") #adiciona um título
ax.legend() #adiciona legenda ao gráfico
Você deve conseguir algo parecido com isto …
Se você estiver tendo algum problema, certifique-se de verificar o canto superior direito para verificar se o “kernel” está ligado e configurado para Python 3
Exemplo de código:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,2,100)
fig,ax= plt.subplots()
ax.plot(x,x,label='Dormir')
ax.plot(x,x**2,label='Se preocupar que o céu esteja caindo...')
ax.plot(x,x**3,label='Ser uma estrela')
ax.set_xlabel('Tempo') #adiciona descrição do eixo X
ax.set_ylabel('Ano') #adiciona descrição do eixo Y
ax.set_title("Enredo do Chicken Little") #adiciona um título
ax.legend() #adiciona legenda ao gráfico
** PS. Se você nunca assistiu Chicken Little, deve fazer isso o mais rápido possível, pois está perdendo uma obra-prima animada.
Compartilhe seu projeto!
Como posso salvar meu projeto com o Jupyter? Clique aqui para ver o vídeo!
1) Pressione File no canto superior esquerdo
2) Pressione “Save Notebook As”
3) Salve o Notebook como um arquivo .ipynb
4) Então, se você quiser voltar a este código, pode carregar o arquivo .ipynb de volta no Jupyter e editá-lo!
Hackeando!
Adicione dados não tratados ao gráfico - Código Demo
OU
Siga o workshop e personalize com dados do COVID-19 no workshop:
Visualizing Covid-19 Data Por: Nic Piepenbreier!!! (Em inglês)
OU
Personalize o seu gráfico totalmente (como eu fiz com o Chicken Little)! -Procure gráficos diferentes como (gráficos de pontos, gráficos de pizza, etc.)
Utilizando múltiplos tipos de visualizações e gráficos:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Ellipse
np.random.seed(19680801)
NUM = 250
ells = [Ellipse(xy=np.random.rand(2) * 10,
width=np.random.rand(), height=np.random.rand(),
angle=np.random.rand() * 360)
for i in range(NUM)]
fig, ax = plt.subplots(subplot_kw={'aspect': 'equal'})
for e in ells:
ax.add_artist(e)
e.set_clip_box(ax.bbox)
e.set_alpha(np.random.rand())
e.set_facecolor(np.random.rand(3))
ax.set_xlim(0, 10)
ax.set_ylim(0, 10)
plt.show()
#Fonte: https://matplotlib.org/gallery/shapes_and_collections/ellipse_demo.html
OU
Veja como importar Google Trends no seu gráfico!
Código Demo:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import random
tiktok=pd.read_csv('multiTimeline.csv', header=1)
#para o arquivo csv, você terá que fazed o download do gráfico direto do google trends e fazer o upload no bloco de notas do jupyter, depois você copia o caminho do arquivo e coloca no lugar do multiTimeline.csv.
cols = tiktok.columns
cols = [x.split()[0].lower() if len(x.split())>2 else x.lower() for x in cols]
tiktok.columns=cols
tiktok['semana']= pd.to_datetime(tiktok['semana'])
tiktok = tiktok.replace('<1', 1)
tiktok.set_index('semana', inplace=True)
tiktok.plot(figsize=(14,6))
plt.title('Interesse no Tik Tok')
Quer ajuda para adicionar Google Trends? Clique aqui!
Agora que você terminou de construir este maravilhoso projeto, compartilhe sua bela criação com outras pessoas! Lembre-se, é só mandar a URL do seu projeto!
Você provavelmente conhece as melhores maneiras de entrar em contato com seus amigos e familiares, mas se você quiser compartilhar seu projeto com a comunidade brasileira do Hack Club, não há melhor lugar para fazer isso do que no Discord do Hack Club Brasil.✨
- Clique aqui para fazer parte da nossa comunidade!
- Depois, poste o link do seu projeto no canal
💡┇criações
para compartilhá-lo com todos os Hack Clubbers!
A comunidade te espera!🎉🎉