Som forskare som skriver publikationer regelbundet står jag ofta inför problemet med att producera snygga grafer. Det var inte alltid lätt för mig, och jag var tvungen att använda de tillgängliga verktygen, men jag var inte nöjd med de diagram som jag producerade mest av tiden. Jag brukade alltid undra hur andra forskare producerade sina snygga grafer!
Problemet började minska efter att jag kom över Pythons bibliotek, matplotlib
, som producerar sådana snygga grafer. Som nämns på bibliotekets hemsida:
matplotlib
är ett python 2D-plottingsbibliotek som producerar publikationskvalitetsfigurer i en mängd olika hårddiskformat och interaktiva miljöer över plattformar.matplotlib
kan användas i pythonskript, python- och ipythonskalet (ala MATLAB® * eller Mathematica®), webbapplikationsservrar och sex grafiska användargränssnittsverktyg.matplotlib
försöker göra enkla saker lätt och svårt möjligt. Du kan generera tomter, histogram, strömspektra, stapeldiagram, errorcharts, scatterplots, etc, med bara några rader av kod.
I denna handledning kommer jag att visa dig hur du installerar matplotlib
, och sedan går jag igenom några exempel.
Om du är intresserad av att gräva djupare i Python och lära dig hur du använder Pythons kraft för att hantera data, varför inte kolla in dessa två kurser:
installera matplotlib
är väldigt enkelt. Jag arbetar för närvarande med en Mac OS X-maskin, så jag visar hur du installerar biblioteket på det operativsystemet. Vänligen se installationssidan för matplotlib för mer information om installationen matplotlib
på andra operativsystem.
matplotlib
kan installeras genom att köra följande kommandon i din terminal (jag ska använda pip, men du kan använda andra verktyg):
curl -O https://bootstrap.pypa.io/get-pip.py python get-pip.py pip installera matplotlib
Det är allt. Du har nu matplotlib
upp och igång. Så enkelt som det!
Låt oss nu titta på några exempel på att använda matplotlib
. Den första uppsättningen exempel kommer att vara på att dra några grundläggande tomter.
Låt oss överväga ett enkelt exempel på att skriva a linjekarta använder sig av matplotlib
. I det här fallet ska vi använda matplotlib.pyplot
, vilket ger en MATLAB-liknande planeringsram. Det ger med andra ord en samling kommandostilfunktioner som möjliggör matplotlib
att jobba som MATLAB.
Låt oss säga att vi ville rita en rad för följande uppsättning punkter:
x = (4,8,13,17,20) y = (54, 67, 98, 78, 45)
Detta kan göras med hjälp av följande skript:
importera matplotlib.pyplot som plt plt.plot ([4,8,13,17,20], [54, 67, 98, 78, 45]) plt.show ()
Observera att vi representerade x
och y
poäng som listor.
I så fall kommer resultatet att vara enligt följande:
Linjen i figuren ovan är standardlinjen som dras för oss, vad gäller form och färg. Vi kan anpassa det genom att ändra formen och färgen på linjen med hjälp av vissa symboler (specifiers) från MATLAB-plottdokumentationen. Så låt oss säga att vi ville rita en grön streckad linje med ruter markörer. De specifikationer vi behöver i detta fall är: 'G - d'
. I vårt skript ovan placerar vi specificatorerna enligt följande:
plt.plot ([4, 8, 13, 17, 20], [54, 67, 98, 78, 45], 'g-d')
I så fall ser figurlinjen ut som följer:
Ett spridningsdiagram är ett diagram som visar förhållandet mellan två uppsättningar data, såsom förhållandet mellan ålder och höjd. I det här avsnittet ska jag visa dig hur vi kan rita en scatterplot med matplotlib
.
Låt oss ta två uppsättningar data, x
och y
, för vilka vi vill hitta deras relation (scatter plot):
x = [2,4,6,7,9,13,19,26,29,31,36,40,48,51,57,67,69,71,78,88] y = [54,72, 43,2,8,98,109,5,35,28,48,83,94,84,73,11,464,75,200,54]
Spridningsdiagrammet kan ritas med följande skript:
import matplotlib.pyplot som plt x = [2,4,6,7,9,13,19,26,29,31,36,40,48,51,57,67,69,71,78,88] y = [54,72,43,2,8,98,109,5,35,28,48,83,94,84,73,11,464,75,200,54] plt.scatter (x, y) plt.show ()
Utskriften av detta skript är:
Naturligtvis kan du ändra färg på markörerna förutom andra inställningar, vilket visas i dokumentationen.
Ett histogram är ett diagram som visar frekvensen av data med hjälp av staplar, där tal grupperas i intervall. Med andra ord visas frekvensen för varje dataelement i listan med hjälp av histogrammet. De grupperade numren i form av intervall kallas bins. Låt oss titta på ett exempel för att förstå detta mer.
Låt oss säga att listan över data vi vill hitta histogrammet för är som följer:
x = [2,4,6,5,42,543,5,3,73,64,42,97,63,76,63,8,73,97,23,45,56,89,45,3,23 , 2,5,78,23,56,67,78,8,3,78,34,67,23,324,234,43,544,54,33,223,443,444,234,76,432,233,23,232,243,222,221,254,222,276,300,353,354,387,364,309]
Python-skriptet som vi kan använda för att visa histogrammet för ovanstående data är:
importera matplotlib.pyplot som plt x = [2,4,6,5,42,543,5,3,73,64,42,97,63,76,63,8,73,97,23,45,56,89 , 45,3,23,2,5,78,23,56,67,78,8,3,78,34,67,23,324,234,43,544,54,33,223,443,444,234,76,432,233,23,232,243,222,221,254,222,276,300,353,354,387,364,309] num_bins = 6 n, rutor, patchar = plt.hist (x, num_bins, facecolor = 'green') plt.show ()
När du kör skriptet ska du få något liknande följande graf (histogram):
Det finns naturligtvis fler parametrar för funktionen hist ()
, som visas i dokumentationen.
Denna handledning var en repa på ytan för att arbeta med grafer i Python. Det finns mer att matplotlib
, och du kan göra många intressanta saker med det här biblioteket.
Om du vill lära dig mer om matplotlib
och se andra typer av figurer som du kan skapa med det här biblioteket, kan en plats vara exemplet av matplotlib
hemsida. Det finns också några intressanta böcker om ämnet, såsom Mastering matplotlib och Matplotlib Plotting Cookbook.
Som vi såg i den här handledningen kan Python utökas för att utföra intressanta uppgifter genom att använda bibliotek från tredje part. Jag har visat ett exempel på ett sådant bibliotek, nämligen matplotlib
.
Som jag nämnde i introduktionen av denna handledning var det inte en lätt uppgift att producera snygga grafer för mig, speciellt när du vill presentera sådana grafer i vetenskapliga publikationer. matplotlib
gav lösningen på problemet, för att du inte bara kan skapa snygga grafer på ett enkelt sätt, utan också att ha kontrollen (dvs. parametrar) över sådana grafer eftersom du använder ett programmeringsspråk för att generera dina grafer vårt fall, Python.