No es raro que a la hora de hacer un gráfico con Octave se haga necesario incluir fórmulas en los ejes o en alguna etiqueta. Esto es posible con un script como el siguiente (probado en la versión 3.8.1), que obtiene la gráfica final como un archivo png
:
#!/usr/bin/octave function y = f(x) for i=1:size(x)(2) y(i) = (3*x(i)*x(i)-1)/2; endfor endfunction function y = g(x) for i=1:size(x)(2) y(i) = (5*x(i)*x(i)*x(i)-3*x(i))/2; endfor endfunction x = -1:0.01:1; plot(x,f(x),"-;$\\frac{1}{2}\\left(3x^2-1\\right)$;", x,g(x),"-;$\\frac{1}{2}\\left(5x^3-3x\\right)$;" ); xlabel("x"); ylabel("y"); legend("location","southeast"); legend("boxoff"); print -depslatexstandalone -color "-S400,300" files/output; system("latex -output-directory=files files/output.tex"); system("dvipng -o png/output.png files/output.dvi");
La primera línea indica que el archivo debe procesarse con Octave (esto permite que se pueda ejecutar directamente sin tener que pasárselo a Octave explícitamente). Deberá sustituirse por la salida del comando which octave
.
A continuación se definen dos funciones, y en seguida se representan éstas en el intervalo [-1,1]
. En el comando plot
se indica que las gráficas se harán con líneas (-)
y se introduce código LaTeX en la leyenda. Este código deberá estar escapado (nótese la doble barra invertida) y entre dos caracteres $
.
Seguidamente se guarda el gráfico con print
. En este comando se indica con -depslatexstandalone
que se generarán dos archivos. Uno con extensión eps
que contendrá el gráfico sin anotaciones y otro con extensión tex
que incluirá las anotaciones (la leyenda, los valores en los ejes y sus etiquetas). Debido al sufijo standalone
este último archivo será un documento de LaTeX válido por sí mismo. De no haberlo puesto se hubiera generado código para incluir en otro archivo. El resto de este comando se indica que queremos usar colores en el gráfico (-color)
, el tamaño del gráfico en píxeles (-S600,500)
y el nombre de los archivos (output-inc.eps
y output.tex
en el directorio files
).
Para terminar se procesan estos archivos desde Octave usando la función system
, cuyos argumentos podrían haberse ejecutado por separado, pero por consistencia se incluyen en el mismo archivo. La primera de estas líneas genera tres archivos con nombre output
y extensiones aux
, log
y dvi
en el directorio files
. La segunda obtiene el gráfico en formato png
a partir de éstos. Podría haberse obtenido en formato pdf
o ps
cambiando dvipng
por dvipdf
o dvips
, pero esto es una cuestión de preferencias y de cómo vaya a usarse.
El resultado final será como el siguiente: