Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

Snygga grafer med python

Den som behöver rita grafer har många alternativ att välja på, vanliga val är 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).

För min del känns Calc osmidigt. Det kräver att datan kopieras in i ett excelark. 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. Dvs. 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 tror är en stor fördel. 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 åandrasidan är man "garanterad" att ens egen kod kör lika bra på bådas system.

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

Jag kanske upplevs som en "python-taliban" här på LP men jag ser python som ett kraftfullt programspråk med otroligt många användingsområden. Det är skalbart alltifrån minimala scripts till program på tiotusentals rader, det passar nybörjare likväl som avancerade utvecklare, det funkar lika bra på Linux som på Windows eller OpenBSD, de allra flesta bibliotek har bindningar till Python och dess fäste är stort både inom FLOSS-världen och i industrin.

 

 

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

forslunds bild

Schyssty tips, det ser riktigt trevligt ut och kan nog bli ett bra tillskott till de bibliotek jag använder i arbetet. Experimentering väntar =)

 

I am not a number, I am a free man!