Como faço para importar múltiplos arquivos TXT, e plotar um gráfico individualmente?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Como faço para importar múltiplos arquivos TXT, e plotar um gráfico individualmente?
Oi Eduardo! Tudo tranquilo por aí?
Primeiramente, para fazer a importação desses arquivos seria necessário fazer uma lista contendo os nomes dos arquivos txt. Entretanto, o conteúdo dessa lista, pode variar de acordo com o diretório que seus arquivos se encontram, e de como os seus dados estão dispostos no seu arquivo txt.
No caso do exemplo que vou mostrar abaixo, o código foi feito no Jupyter Notebook, e eu utilizei 3 arquivos .txt como exemplos (frutas.txt, notas.txt, roupas.txt).
Todos os arquivos txt utilizados estavam seguindo o seguinte padrão:
Maçã,13
Uva,17
Banana,12
Seguindo a ordem: palavra, vírgula e uma quebra de linha ' \n '.
O código utilizado para a geração do gráfico, foi o seguinte:
arquivos = ["dados/notas.txt", "dados/frutas.txt", "dados/roupas.txt"] # lista de arquivos a serem lidos
for arquivo in arquivos:
file = open(arquivo, mode = 'r', encoding = 'utf-8') # percorre cada arquivo dentro da lista arquivos
nome_do_arquivo = arquivo.split('/')[1].split('.txt')[0] # separa o nome do arquivo do 'dados/' e do '.txt'
linhas_arquivo = file.readlines() # faz a leitura de todas as linhas do arquivo
x = [linha.split(',')[0] for linha in linhas_arquivo] # pega a primeira coluna do arquivo
y = [int(linha.split(',')[1].split('\n')[0]) for linha in linhas_arquivo] # pega a segunda coluna do arquivo
print(y)
plt.figure() # cria uma nova figura
plt.bar(x, y) # plota um gráfico de barras
plt.title(nome_do_arquivo) # coloca o título do gráfico
plt.yticks(range(0,20,5)) # limita os valores do eixo yOs comentários na frente de cada linha estão explicando qual a função de cada uma.
Na parte que definimos o x e o y, o que estamos fazendo é pegando a lista linhas_arquivo que contém nossos dados separados por ' , ' e estamos quebrando eles, conforme foi feito anteriormente por meio do método split.
No caso do x, nós separamos os dados de acordo com a vírgula e selecionamos apenas o nome, por meio do índice [0].
Já no caso do y, fazemos a mesma separação por vírgula utilizando o método split e selecionamos apenas os valores por meio do índice [1]. Após isso fazemos uma segunda separação: split('\n') para conseguir separar o ' \n ', e convertemos esses valores para o tipo int, para que na hora de fazer o gráfico não ocorra nenhum possível problema.
Com isso, caso você print as variáveis x e y vai perceber que elas ficam definidas da seguinte maneira:
x:
['Maria', 'Ryan', 'Júlia']
['Maçã', 'Uva', 'Banana']
['Camisetas', 'Calças', 'Bermudas']y:
[10, 9, 8]
[13, 17, 12]
[13, 15, 18]E os gráficos resultantes desse exemplo ficam assim:
Espero ter ajudado.
Qualquer dúvida vamos nos falando por aqui, tá bom?
Bons estudos!