Como faço para importar múltiplos arquivos TXT, e plotar um gráfico individualmente?
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 y
Os 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!