SymPy - Plottaggio
SymPy utilizza la libreria Matplotlib come backend per eseguire il rendering di grafici 2-D e 3-D di funzioni matematiche. Assicurati che Matplotlib sia disponibile nell'installazione corrente di Python. In caso contrario, installa lo stesso utilizzando il seguente comando:
pip install matplotlib
Il supporto per il plottaggio è definito nel modulo sympy.plotting. Le seguenti funzioni sono presenti nel modulo di plottaggio:
plot - Grafici a linee 2D
plot3d - Grafici a linee 3D
plot_parametric - Grafici parametrici 2D
plot3d_parametric - Grafici parametrici 3D
La funzione plot () restituisce un'istanza della classe Plot. Una figura della trama può avere una o più espressioni SymPy. Sebbene sia in grado di utilizzare Matplotlib come backend, possono essere utilizzati anche altri backend come texplot, pyglet o l'API dei grafici di Google.
plot(expr, range, kwargs)
dove expr è qualsiasi espressione symPy valida. Se non menzionato, l'intervallo utilizza l'impostazione predefinita come (-10, 10).
L'esempio seguente traccia i valori di x2 per ogni valore nell'intervallo (-10,10) -
>>> from sympy.plotting import plot
>>> from sympy import *
>>> x=Symbol('x')
>>> plot(x**2, line_color='red')
Per disegnare più grafici per lo stesso intervallo, fornire più espressioni prima della tupla di intervallo.
>>> plot( sin(x),cos(x), (x, -pi, pi))
È inoltre possibile specificare un intervallo separato per ciascuna espressione.
plot((expr1, range1), (expr2, range2))
La figura seguente traccia sin (x) e cos (x) su intervalli diversi.
>>> plot( (sin(x),(x, -2*pi, 2*pi)),(cos(x), (x, -pi, pi)))
I seguenti argomenti di parole chiave opzionali possono essere specificati nella funzione plot ().
line_color - specifica il colore della linea di trama.
title - una stringa da visualizzare come titolo
xlabel - una stringa da visualizzare come etichetta per l'asse X.
ylabel - una stringa da visualizzare come etichetta per l'asse y
>>> plot( (sin(x),(x, -2*pi, 2*pi)),(cos(x), (x, -pi, pi)), line_color='red', title='SymPy plot example')
La funzione plot3d () rende un grafico tridimensionale.
plot3d(expr, xrange, yrange, kwargs)
L'esempio seguente disegna un grafico di superficie 3D:
>>> from sympy.plotting import plot3d
>>> x,y=symbols('x y')
>>> plot3d(x*y, (x, -10,10), (y, -10,10))
Come nel grafico 2D, un grafico tridimensionale può anche avere più grafici ciascuno con un intervallo diverso.
>>> plot3d(x*y, x/y, (x, -5, 5), (y, -5, 5))
La funzione plot3d_parametric_line () rende un grafico a linee parametriche tridimensionali.
>>> from sympy.plotting import plot3d_parametric_line
>>> plot3d_parametric_line(cos(x), sin(x), x, (x, -5, 5))
Per disegnare un grafico di superficie parametrico, utilizzare la funzione plot3d_parametric_surface ().
plot3d_parametric_surface(xexpr, yexpr, zexpr, rangex, rangey, kwargs)
>>> from sympy.plotting import plot3d_parametric_surface
>>> plot3d_parametric_surface(cos(x+y), sin(x-y), x-y, (x, -5, 5), (y, -5, 5))