Python: %Mathplotlib inline

30-paź-2022

W wielu tutorialach, można spotkać instrukcję:

%mathplotlib inline

Co ona oznacza? Jakie inne opcje oprócz inline są możliwe do uruchomienia?

Odpowiedź w skrócie: rysując wykres, możesz go uzyskać w dodatkowym okienku, które otworzy się, kiedy ten wykres pokazujesz, ale można też umieścić wykres bezpośrednio w Notebooku. Opcje domyślne się zmieniają – w starszych notebookach wykresy domyślnie generowały sie w ekstra oknie, a w nowszych są wbudowywane w notebook.

Jeśli chcesz się pobawić i zobaczyć, jak inaczej można by generować wykresy uruchom:


%matplotlib -l

U mnie pokazuje się:

Available matplotlib backends: ['tk', 'gtk', 'gtk3', 'gtk4', 'wx', 'qt4', 'qt5',
 'qt6', 'qt', 'osx', 'nbagg', 'notebook', 'agg', 'svg', 'pdf', 'ps', 'inline', 'ipympl', 
'widget']

I sorry za brak kompentencji hahah, ale nie znam znaczenia wszystkich tych opcji 🙂 Część z nich u mnie w ogóle nie działa 🙂

Ale wykonałem takie oto próby, które powinny pomóc w zrozumieniu, jak z tym pracować. Co bardzo ważne – kernel notebooka należy przed uruchomieniem tego kodu zrestartować, tak, aby ten kod uruchomił się jako pierwszy. Ten kod otworzy nowe okno:

import numpy as np
import matplotlib.pyplot as plt
%matplotlib qt
# evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)

# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()

Po restarcie i zmianie kodu na:

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)

# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()

Wykres jest umieszczany poniżej komórki, w której kod został uruchomiony.

No i bardzo ważne – zależnie od narzędzia jakiego używasz (Spyder, Jupyter, VSC, …) coś może zadziałać, albo nie, bo komendy rozpoczynające się od % działają nisko na poziomie modułu, który modyfikują.

Jeśli jesteś zainteresowany szczegółami poczytaj tu: https://www.scaler.com/topics/matplotlib-inline/

Komentarze są wyłączone

Autor: Rafał Kraik