Segue um esquema “canivete suíço” simples e direto para plotar uma série temporal usando python. O script a seguir lê os dados de um arquivo CSV (comentado) ou de um banco de dados PostgreSQL e faz um gráfico impresso na tela ou em figura (comentado):
#!/usr/bin/python # -*- coding: utf-8 -*- # Script para plotar gráficos de série temporal (BD ou CSV) import os import sys # Busca no Postgresql import psycopg2 import psycopg2.extras # Grafico import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as md import dateutil from datetime import datetime # Opção para ler dados de arquivo CSV #cor = pd.read_csv('filename.csv', delimiter=',') table_name = 'schema.table_name' data_coluna = 'dt_horario' var_coluna = 'variavel' data_ini = '2017-08-12 17:00:00' data_fim = '2017-08-12 17:10:00' conn = psycopg2.connect(host = "hostname.com.br", database = "nome_db", user="usuario") cursor = conn.cursor() query = "SELECT %s,%s FROM %s WHERE %s BETWEEN '%s' AND '%s' ORDER BY %s;" % (data_coluna,var_coluna,table_name,data_coluna,data_ini,data_fim,data_coluna) cursor.execute(query) lst = cursor.fetchall() # Fechar ponteiro e conexão cursor.close() conn.close() x = [item[0] for item in lst] y = [item[1] for item in lst] plt.plot(x,y, marker='.', linestyle='') plt.show() # Opção para salvar grafico em figura PNG #plt.savefig("plot.png")
Mais opções no post Gráficos em python. O repositório viniroger/ts_means contém mais códigos para cálculo de médias (mensais e padrão diurno) e confecção de gráficos.
One comment