Ga naar hoofdinhoud

Matplotlib Inline verkennen: een snelle tutorial

Leer hoe matplotlib inline je in staat stelt om je datavisualisaties direct in een notebook snel en eenvoudig weer te geven! In dit artikel behandelen we wat matplotlib inline is, hoe je het gebruikt en hoe je het koppelt aan andere libraries om krachtige visualisaties te maken.
· 6 min lezen

Verken met AI

Matplotlib is een krachtige library voor het maken van visualisaties in Python. Wanneer je Jupyter Notebooks, DataLab of andere compatibele omgevingen gebruikt, kun je Matplotlib inline gebruiken om Matplotlib-plots direct in het notebook weer te geven, zonder extra vensters. Voor meer over de mogelijkheden van Matplotlib, bekijk deze tutorial over het gebruik van de Matplotlib-library.

Wat doet Matplotlib Inline?

Matplotlib inline is een backend-commando in Jupyter Notebooks dat het renderen van Matplotlib-plots direct onder codecellen mogelijk maakt. Dit betekent dat wanneer je code uitvoert die Matplotlib-plots genereert, de plots inline in het notebook worden weergegeven, in plaats van in een apart venster of een aparte outputcel.

Deze inline rendering is handig wanneer je in een notebook iteratief aan een plot werkt. Omdat de grafiek direct onder de code verschijnt die deze genereert, zie je gemakkelijk hoe wijzigingen in je code het resultaat beïnvloeden. Je kunt dit gebruiken terwijl je standaard plotfuncties toepast, zoals een titel, aslabels, een legenda of kleurcodering.

Let op: in sommige gevallen kun je tegen geheugenlekken aanlopen, een fout waarbij het geheugen niet wordt vrijgegeven tussen plotgebeurtenissen, waardoor de figuur na wijzigingen onjuist wordt geplot. Als je dit als probleem merkt, probeer dan de methoden .clf() en .close() te gebruiken om het geheugen van de vorige plot te wissen voordat je opnieuw plot.

Belangrijke opmerking: in de huidige versies van Jupyter Notebook is het gebruik van Matplotlib inline niet noodzakelijk, omdat plots automatisch worden weergegeven. Toch is het nog steeds nuttig om te gebruiken, zeker bij het delen van code. Dus als je de nieuwste versie van Jupyter Notebook gebruikt of DataLab, en je geen code hoeft te delen, kun je deze tutorial overslaan en in plaats daarvan meteen aan de slag gaan met Matplotlib.

Matplotlib inline: syntax en gebruik met voorbeelden

Om de inline-modus van Matplotlib in een Jupyter-notebook in te schakelen, voeg je simpelweg het volgende commando toe aan het begin van je notebook:

import matplotlib
%matplotlib inline

Dit commando vertelt Jupyter om Matplotlib-plots direct in het notebook te renderen, in plaats van een nieuw venster te openen of een externe plot te moeten opslaan. Zodra dit is ingeschakeld, kun je zoals gebruikelijk plots maken en weergeven met Matplotlib.

Een voorbeeld van %matplotlib inline in actie in een Jupyter Notebook

Zoals eerder vermeld, vereisen de nieuwste versies van Jupyter Notebooks & IDE's zoals DataLab niet dat je %matplotlib inline toevoegt om plots binnen dezelfde cel te zien. Toch voeg ik deze ene regel graag toe bovenaan mijn scripts, zelfs bij gebruik van zulke IDE's. Het maakt het makkelijker om code tussen systemen en teamleden uit te wisselen. Het verkleint ook de kans op een onverwachte fout als de IDE niet meer werkt zoals je verwacht.

Een interactief alternatief: %matplotlib notebook

Als je interactiviteit in je inline plots zoekt, probeer dan het %matplotlib notebook-backendcommando. Dit commando toont je plots nog steeds binnen het notebook en voegt interactiviteit toe zoals zoomen, pannen en data-inspectie. Ik heb echter gemerkt dat dit op sommige systemen wispelturig kan zijn. Als je problemen hebt met deze magic command, raad ik aan om in plaats daarvan plotly.io te gebruiken voor interactieve, inline plots.

Een voorbeeld van %matplotlib notebook in actie in een Jupyter Notebook

%matplotlib inline integreren met andere plotlibraries

Het commando %matplotlib inline is niet beperkt tot matplotlib-plots. Het integreert eenvoudig met andere plotlibraries zoals seaborn en plotly, waardoor je het scala aan plottypen die je inline in je notebook kunt maken, vergroot.

Dit commando samen met de seaborn-library gebruiken, vergroot de aanpassingsmogelijkheden voor de plots.

Een voorbeeld van %matplotlib inline met seaborn in actie in een Jupyter Notebook

Dit commando samen met de plotly-library gebruiken, maakt interactiviteit mogelijk, zoals zoomen en pannen.

Een voorbeeld van %matplotlib inline met plotly in actie in een Jupyter Notebook

Belangrijkste inzicht: Gebruik het commando %matplotlib inline om inline plotten in Jupyter-notebooks te activeren. Koppel dit commando aan andere plotlibraries om krachtige visualisaties te maken.

Best practices voor het gebruik van %matplotlib inline

Houd bij het gebruik van %matplotlib inline rekening met de volgende best practices:

  1. Voeg het matplotlib inline-commando toe bovenaan een notebook, zodat plots consequent worden weergegeven door het hele notebook.
  2. Zorg dat je de matplotlib-library importeert voordat je het commando aanroept.
  3. Als je plots binnen het notebook wilt bekijken, gebruik dan zeker matplotlib inline, zelfs als je IDE dit standaard al doet. Dat zorgt voor een soepele werking, vooral wanneer je code door een collega wordt gebruikt.
  4. Zorg dat je oude plots wist voordat je nieuwe genereert om geheugenlekken te voorkomen.
  5. Let erop dat het type plot dat je gebruikt past bij je data en de conclusie die je wilt laten zien.

Conclusie

De inline-modus van Matplotlib is een handige functie die de bruikbaarheid van Matplotlib in Jupyter-notebooks vergroot. Door inline rendering van plots in te schakelen, stroomlijn je de workflow van het creëren, verkennen en communiceren van inzichten uit data.

Wil je meer leren over datavisualisaties? Bekijk dan Introduction to Data Visualizations with Matplotlib. Ga aan de slag met geavanceerde plots en visualisaties in deze Seaborn-cursus en deze tutorial over histogrammen in Matplotlib.

Amberle McKee

Auteur

Amberle McKee

Ik ben gepromoveerd en heb 13 jaar ervaring met het werken met data in een biologische onderzoeksomgeving. Ik maak software in verschillende programmeertalen, waaronder Python, MATLAB en R. Ik deel met plezier mijn liefde voor leren met de wereld.

Onderwerpen