Como converter um arquivo CSV para um grafo em Python

Escrito por simone spada | Traduzido por joao marcos padua filho
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como converter um arquivo CSV para um grafo em Python
A linguagem Python é considerada a com maior potencial de crescimento atualmente (chart background image by Stasys Eidiejus from Fotolia.com)

A maioria dos programas de banco de dados e planilhas pode convenientemente exportar dados em arquivos do formato CSV (comma-separated-values - valores separados por vírgulas). Esses arquivos são bem vistos pela sua simplicidade e portabilidade, mas são ineficientes para apresentação e análise de grandes volumes de dados. Usando a linguagem Python e uma biblioteca externa, a matplotlib, um programador pode superar essa limitação fazendo a conversão desses dados para um grafo com boa visibilidade, tornando adequado para publicação na Internet ou impressão.

Nível de dificuldade:
Desafiante

Outras pessoas estão lendo

O que você precisa?

  • Ambiente de desenvolvimento para Python
  • Biblioteca de plotagem 2D Matplotlib
  • Arquivo CSV contendo duas colunas de dados numéricos
  • Editor de textos

Lista completaMinimizar

Instruções

    Renderizando um arquivo CSV como um grafo utlizando Python e Matplotlib

  1. 1

    Crie um arquivo CSV para testes. Um modelo simples pode ser como:

    1,2 2,3 3,8 4,13 5,18 6,21 7,13 7.5,4 2.5,4.3

  2. 2

    Importe as bibliotecas de Python necessárias para o seu código:

    import matplotlib.pyplot as plt import csv import sys

  3. 3

    Abra o arquivo CSV e crie um objeto para leitura. Declare variáveis para definir os limites superiores e inferiores dos eixos X e Y do grafo:

    csv_reader = csv.reader(open('test.csv')) bigx = float(-sys.maxint -1) bigy = float(-sys.maxint -1) smallx = float(sys.maxint) smally = float(sys.maxint)

  4. 4

    Itere sobre cada linha contida no objeto leitor e armazene cada linha como um índice em um vetor de índices. No mesmo laço compare os valores de X e Y para armazenar seus limites superiores e inferiores. Ordene o vetor e então faça um novo laço, porém, agora, coloque os valores de X e Y em vetores separados.

    verts = [] for row in csv_reader: verts.append(row) if float(row[0]) > bigx: bigx = float(row[0]) if float(row[1]) > bigy: bigy = float(row[1]) if float(row[0]) < smallx: smallx = float(row[0]) if float(row[1]) < smally: smally = float(row[1]) verts.sort() x_arr = [] y_arr = [] for vert in verts: x_arr.append(vert[0]) y_arr.append(vert[1])

  5. 5

    Crie um objeto FigureCanvas usando o objeto matplotlib pyplot, que foi importado. Defina os eixos do grafo no FigureCanvas chamando a função add_axes e passando-a como um vetor de valores na seguinte forma: esquerda, inferior, largura, altura. Esses valores definem onde o grafo será colocado na tela — e eles podem variar de 0.0 até 1.0:

    fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])

  6. 6

    Formate o grafo adicionando etiquetas e definindo valores máximos e mínimos para cada eixo:

    ax.set_xlabel('x data') ax.set_ylabel('y data') ax.set_xlim(smallx,bigx) ax.set_ylim(smally,bigy)

  7. 7

    Plote o grafo passando os dois vetores contendo os valores de X e Y retirados do arquivo CSV. Personalize seu grafo, por exemplo, alterando a cor ou espessura da linha. Mostre o grafo final chamando o método de apresentação para abrir uma janela e armazenar a imagem chamando a função savefig e criando um arquivo bitmap em disco:

    ax.plot(x_arr,y_arr, color='blue', lw=2) plt.show() fig.savefig('test.png')

Dicas & Advertências

  • Para criar arquivos que o interpretador de Python possa ler, você deve usar um texto ascii ou editor de texto que crie arquivos de texto apenas.
  • Você pode armazenar imagens de grafos em vários outros formatos, incluindo png, pdf, ps e svg.
  • Alguns aspectos da instalação e funcionalidade da biblioteca matplotlib variam de acordo com plataformas de computadores, então leia a documentação cuidadosamente. A biblioteca pode mostrar dados numéricos em uma variedade de formas e pode ser altamente personalizada. Uma leitura completa da documentação é necessária para se tirar o máximo proveito do produto.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível