#!/usr/bin/env python # -*- coding: utf-8 -*- import subprocess from datetime import datetime import sqlite3 conn= sqlite3.connect('/home/jesus/Bolsa/servidor/db.sqlite3') cursor= conn.cursor() cursor.execute("select identidicador from cotizaciones_valores group by identidicador order by identidicador") resultado= cursor.fetchall() for ids in resultado: id= ids[ 0] print id cursor.execute( "select id, Nombre from cotizaciones_valores where identidicador = ?", (id, )) resultado= cursor.fetchone() id_Valor= resultado[ 0] Nombre_Valor= resultado[ 1].encode('utf-8') print Nombre_Valor Fecha_Inicio="2011-02-25" Fecha_Fin="2011-02-26" hoy= datetime.now() #cursor.execute("select strftime('%s', fecha), apertura, oferta, minimo, anterior, volumen from cotizaciones_charco where id_Valor_id= 27 order by fecha asc") f1= ("'%s 00.00:00'" % Fecha_Inicio) f2= ("'%s 23:59:59'" % Fecha_Fin) dias= [] cursor.execute("select strftime('%Y-%m-%d', fecha), apertura, oferta, minimo, anterior, volumen \ from cotizaciones_charco \ where (id_Valor_id= ? and fecha > ? and fecha< ?) \ order by fecha asc", (id_Valor, Fecha_Inicio, Fecha_Fin)) resultado= cursor.fetchall() for registro in resultado: #Busco la ultima cotizacion fecha= registro[ 0] if not fecha in dias: dias.append( fecha) archivo_datos= open('datos.csv', 'w') for dia in dias: f1= ("'%s 00:00:00'" % dia) f2= ("'%s 23:59:59'" % dia) fmt_fecha= "strftime('%Y-%m-%d', fecha)" consulta= ("select %s, apertura, oferta, minimo, anterior, volumen \ from cotizaciones_charco \ where (id_Valor_id= %s and fecha >= %s and fecha< %s) \ order by fecha desc limit 1" % ( fmt_fecha, id_Valor, f1, f2, )) cursor.execute( consulta) resultado_dias= cursor.fetchone() exporta_datos= "%s %s\n" % ( resultado_dias[ 0],resultado_dias[ 1],) #exporta_datos= "%s, %s, %s, %s, %s, %s" % ( resultado_dias[ 0],resultado_dias[ 1],resultado_dias[ 2],resultado_dias[ 3],resultado_dias[ 4],resultado_dias[ 5],) archivo_datos.write( exporta_datos) archivo_datos.close() archivo_configuracion= open( 'gnuplot.dem', 'w') archivo_configuracion.write("reset\n") archivo_configuracion.write("set terminal png size 1920, 1080\n") archivo_configuracion.write("set output './%s_a_1_anno.png'\n" % ( id,)) archivo_configuracion.write("set xdata time\n") archivo_configuracion.write("set timefmt '%Y-%m-%d'\n") archivo_configuracion.write("set xrange ['%s' : '%s']\n" % ( Fecha_Inicio, Fecha_Fin,)) archivo_configuracion.write("set format x '%d-%m-%y'\n") archivo_configuracion.write("set lmargin 10\n") archivo_configuracion.write("set rmargin 10\n") archivo_configuracion.write("set autoscale y\n") archivo_configuracion.write("set xlabel 'Tiempo, desde %s a %s'\n" % ( Fecha_Inicio, Fecha_Fin,)) archivo_configuracion.write("set ylabel 'Euros'\n") archivo_configuracion.write( u"set title '%s (%s)'\n" % ( Nombre_Valor.encode('iso-8859-15'), id,)) archivo_configuracion.write("set xtics rotate 180 '%s', 604800, '%s'\n" % ( Fecha_Inicio, Fecha_Fin,)) archivo_configuracion.write("set grid\n") archivo_configuracion.write("set grid ytics\n") archivo_configuracion.write("plot './datos.csv' using 1:2 with lines notitle\n") archivo_configuracion.close() print "Llamando a subproceso GnuPlot" a= subprocess.call([ "gnuplot", "./gnuplot.dem"]) cursor.close()