Ahir, en comptes d’estar estudiant, que és el que toca, vam inventar un programeta Python per dominar el món.
Bé, no tant…
El que fa la merda aquesta (joder, ja parlo com cert professor d’electrodinàmica) és fer quatre guarrades amb el gnuplot. Bàsicament agafa una funció [en aquest cas,
, per dir algo], et demana un nombre de punts
, i crea un arxiu de dades amb les parelles de valors
de 1 fins a n-1. Després crida al sr. gnuplot (bé, primer hem escrit un script gnuplot de manera cutre, després el cridem) i pinta aquestes parelles
, i exporta la gràfica a un postscript molt maco. Finalment es van obrint els .ps amb el visor de documents evince [Linux only
]. Els .ps es guarden dins del mateix directori, també (més útil que no anar escopint l’evince per pantalla, btw).
En fí, aquí tenim la joia de la corona:
#!/usr/bin/env python
# -*- coding: utf-8 -*-import os
from math import *#Definim la funció que representarà el gnuplot
def funcio(x):
return sin(x**2)#Obrim l’arxiu de dades que omplirà el programet
dades=open(’gnuplot.dat’,'w’)#Introduïm el nombre n de punts que iterarem la funció
n=int(raw_input(’Nombre de punts: ‘))#Bucle de n fins a 1000 (nombre arbitràriament ‘gran’)
while n < 1000:
for i in range(1,n):
dades.write(str(i)+’ ‘+str(funcio(i))+’\n’)#Manera cutre de fer un script gnuplot dins d’aquest programa Python
script=open(’gnuplot.gnu’, ‘w’)
script.write(str(”set term postscript enhanced color”+’\n’))
script.write(str(”set output ‘gnuplot”+str(n)+”.ps’”+’\n’))
script.write(str(”plot ‘gnuplot.dat’”+’\n’))
script.write(str(”exit”+’\n’))
script.close()#Cridar l’script anterior i obrir els postscript creats amb l’evince
ordre=str(’evince’+’ ‘+str(”gnuplot”+str(n)+”.ps”+’ &’))
os.system(’gnuplot gnuplot.gnu’)
os.system(ordre)
# os.system(’ps2pdf gnuplot.ps’)
n = n + 10#Tancar l’arxiu de dades abans de sortir
dades.close()