matplotlib

Den som behöver rita grafer har många alternativ att välja på, vanliga val är OpenOffice Calc, Matlab, Octave + Gnuplot eller bara Gnuplot.

Nog är Matlab kraftfullt och det finns till i princip alla plattformar men dess prislapp känns orimlig för den som inte har väldigt stora behov (eller har stora mängder kod som inte fungerar i Octave).

OpenOffice Calc kräver att datan kopieras in i ett kalkylark och det passar inte mina behov. I regel kommer data i någon form av autogenererad logfil som måste tolkas och därefter klistras in i det akuella arket – en procedur som manuellt måste upprepas varje gång ny mätdata fås.

Bättre är att skapa ett automatverktyg för att läsa den råa data så att den fås i ett format som passar sig för den aktuella grafritaren. Om man använder Gnuplot så måste man skriva en .gp-fil som definerar utformatet (png, eps osv.), vilken indatafil som ska användas samt vilka kolumner som ska användas. Man kan utföra vissa beräkningar på själva datan, men dessa funktioner är ganska begränsade. När både infilen och .gp-filen finns på plats kör man gnuplot och ut kommer de generade bildfilerna.

Jag har använt Gnuplot men trivs inte med dess syntax och dess stela sätt att hantera indata. Jag blev därför väldigt glad när jag fick nys om matplotlib, ett python-bibliotek som ingår i samma familj som numpy, sympy och pylab. Dessa bibliotek erbjuder ett gränssnitt som är väldigt familjärt för den som är van vid Matlab. Man kan på ett enkelt sätt läsa in data, transformera den och plotta den utan krussiduller. Att man inte har ett eget programspråk såsom Octave ser jag som en fördel, det är helt vanlig python vilket gör att det är enkelt att jobba med och samverka med andra bibliotek.

Även om systemet påminner om Matlab så försöker man inte vara Matlab-kompatibel, något jag inte tror att man bör eftersträva. Om den ene sitter med Octave och den andre med Matlab så kommer det alltid finnas småsaker som någon får problem med när man delar kod. Här tvingas båda använda samma bibliotek men då är man också “garanterad” att ens egen kod kör lika bra på bådas system.

http://matplotlib.sourceforge.net/index.html

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s