GNU Octave..5 Spara grafik i postscriptfiler Per Jönsson, NMS, Malmö högskola
Gnuplot Octave använder Gnuplot för att visa grafik. Gnuplot är ett mycket kraftfullt programpaket som både kan visa grafiken i ett fönster (se avsnitt 5. i boken) och lagra den i en fil. För att få information om vilka lagringsformat som finns tillgängliga ger man i Octaves arbetsfönster kommandot gset term varvid Gnuplots arbetsfönster kommer upp (se figur ). I det följande skall vi använda Gnuplots postscriptformat. Figur : Vid starten av Gnuplots arbetsfönster får man en lista över de grafiska format som kan användas. Till Gnuplot hör en omfattande hjälpfunktion. Denna hjälpfunktion startas genom att i Gnuplots arbetsfönster skriva help I hjälpfönstret som kommer upp kan man sedan leta efter kommandon man vill ha hjälp med. Om man vill kan man ge plotkommandon direkt i Gnuplots arbetsfönster. Vi ska dock inte göra detta, utan vi går som vanligt via Octave.
Spara plottar som postscriptfiler I detta avsnitt skall vi titta närmare på hur man sparar plottar i postscriptformat. Exempel. (a) Vi börjar med att plotta till Octaves grafikfönster x = :.:; y = sin(x); y = cos(x); plot(x,y, ;sin(x); ), hold on plot(x,y, ;cos(x); ) title( sin(x) och cos(x) ) xlabel( x ), ylabel( y ) gset arrow from pi/, to pi, heads filled % ger en pil med två spetsar gset term postscript eps lw Ariel gset output "plot.eps" Det första kommandot säger till att plotten skall sparas i formatet encapsulated postscript med linjevidd och fonttypen Ariel av storlek. Det andra kommandot anger filnamnet på den sparade plotten. Efter att vi har definierat format och filnamn kommer plotkommandona som vanligt. Filen plot.eps kan nu importeras i ett LaTeX- eller Worddokument och vi får plotten till vänster i figur. (b) Vi tar ett nytt exempel och skriver in kommandona x = :.:; y = sin(x); y = cos(x); plot(x,y, ;sin(x); ), hold on plot(x,y, ;cos(x); ) title( sin(x) och cos(x) ) xlabel( x ), ylabel( y ) gset arrow from 3,.8 to pi/,/sqrt() head filled % ger en pil med en spets text(3.,.8, intersection ) % skriver text i figuren gset term postscript eps solid lw 3 Times Roman color colortext gset output "plot.eps" Det första kommandot säger till att plotten skall sparas i formatet encapsulated postscript med heldragna linjer med vidd 3 och fonttypen Times Roman av storlek. Plotten kommer att vara i färg. Det andra kommandot anger filnamnet på den sparade plotten. Efter att vi har definierat format och filnamn kommer plotkommandona som vanligt. Filen plot.eps kan nu importeras i ett LaTeX- eller Worddokument och vi får plotten till höger i figur. 3
y.8.6.. -. -. -.6 -.8 sin(x) och cos(x) - 6 8 x sin(x) cos(x) y.8.6.. -. -. -.6 -.8 sin(x) och cos(x) intersection - 6 8 x sin(x) cos(x) Figur : Två plottar i formatet encapsulated postscript som har importerats i ett LaTeX-dokument. 3 Stänga av teckenförklaring (legend) Gnuplot ger normalt en teckenförklaring, vilket kan vara irriterande. Det gåt dock bra att stänga av teckenförklaringen genom kommandot gset nokey. Vi får tillbaka teckenförklaringar som vanligt genom att skriva gset key. Exempel. (a) Vi börjar med att plotta till Octaves grafikfönster x = :.:5; y = x+3; y = -x+3; plot(x,y), hold on plot(x,y) gset term postscript eps solid lw 3 Times Roman color colortext gset output "plot3.eps" Filen kan nu importeras i LaTeX eller Word och vi får plotten till vänster i figur 3. (b) Vi plottar samma funktioner men stänger av teckenförklaringen x = :.:5; y = x+3; y = -x+3; plot(x,y), hold on plot(x,y) gset nokey gset term postscript eps solid lw 3 Times Roman color colortext gset output "plot.eps" Då vi importerar filen i LaTeX får vi plotten till höger i figur 3.
8 6 line line 8 6-3 5-3 5 Figur 3: En plot med teckenförklaring och en plot utan. Spara bilder som postscriptfiler I avsnitt 5.9 i boken har vi sett hur man kan visa matriser som bilder med kommandotimagesc. Här går vi vidare och ser hur bildena lagras i svart och vitt postscriptformat med hjälp av savimage. Exempel 3. Vi genererar en slumpmatris A = randn(,); Matrisen sparas i postscriptformat i filen bild.ps genom maxval = max (A(:)); minval = min (A(:)); colormap( gray ); B = round ((A - minval) / (maxval - minval) * (rows (colormap) - )) + ; saveimage( bild.ps,b, ps ) Notera hur vi skalade matrisen innan den sparades. Filen bild.ps kan omvandlas till encapsulated postscript och importeras i ett LaTeX- eller Worddokument. Detta ger bilden i figur. Figur : En bild i postscript som har importerats i ett LaTeX-dokument. 5