Esercitazione Numpy e Plotting Programmazione Orientata agli Oggetti e Scripting in Python
Matplotlib: summary Matplotlib: libreria per la gestione di grafici 2d Coordinate del grafico definite da un set di valori del dominio della funzione e dai corrispondenti valori calcolati nel codominio Utilizza NumPy per fornire buone prestazioni con dati ad elevata dimensionalità Importazione del modulo di plotting: >>> from matplotlib import pyplot >>> import matplotlib.pyplot as pl
Plot function: stile linea e marker '-' solid line style '3' tri_left marker '--' dashed line style '4' tri_right marker '-.' dash-dot line style 's' square marker ':' dotted line style 'p' pentagon marker '.' point marker '*' star marker ',' pixel marker 'h' hexagon1 marker 'o' circle marker 'H' hexagon2 marker 'v' triangle_down marker '+' plus marker '^' triangle_up marker 'x' x marker '<' triangle_left marker 'D' diamond marker '>' triangle_right marker 'd' thin_diamond marker '1' tri_down marker ' ' vline marker '2' tri_up marker '_' hline marker
Plot function: colori linea b g r c m y k w blue green red cyan magenta yellow black white
Esercizio 1 Plottare un semplice grafico della funzione "seno", includendo griglia, marcatore di tipo "diamond" con dimensione 5, con titolo e legenda del grafico
Esercizio 1 #creare il dominio: valori da 0 a 2π
Esercizio 1 #creare il dominio: valori da 0 a 2π x = 2 * pi * numpy.arange(0,1.01,0.01)
Esercizio 1 #creare il dominio: valori da 0 a 2π x = 2 * pi * numpy.arange(0,1.01,0.01) #codominio: seno di x
Esercizio 1 #creare il dominio: valori da 0 a 2π x = 2 * pi * numpy.arange(0,1.01,0.01) #codominio: seno di x y = numpy.sin(x)
Esercizio 1 #plotting: funzione plot(*args)
Esercizio 1 #plotting: funzione plot(*args) pl.plot(x,y... #dominio e codominio
Esercizio 1 #plotting: funzione plot(*args) pl.plot(x,y... #dominio e codominio #colore e tipo di marker
Esercizio 1 #plotting: funzione plot(*args) pl.plot(x,y... #dominio e codominio #colore e tipo di marker pl.plot(x,y, 'rd'... #r: colore del marker #D: tipo di marker
Esercizio 1 #plotting: funzione plot(*args) pl.plot(x,y... #dominio e codominio #colore e tipo di marker pl.plot(x,y, 'rd'... #r: colore del marker #D: tipo di marker #dimensione del marker
Esercizio 1 #plotting: funzione plot(*args) pl.plot(x,y... #dominio e codominio #colore e tipo di marker pl.plot(x,y, 'rd'... #r: colore del marker #D: tipo di marker #dimensione del marker pl.plot(x,y, 'rd', markersize=5
Esercizio 1 #plotting: funzione plot(*args) pl.plot(x,y... #dominio e codominio #colore e tipo di marker pl.plot(x,y, 'rd'... #r: colore del marker #D: tipo di marker #dimensione del marker pl.plot(x,y, 'rd', markersize=5 #label)
Esercizio 1 #plotting: funzione plot(*args) pl.plot(x,y... #dominio e codominio #colore e tipo di marker pl.plot(x,y, 'rd'... #r: colore del marker #dimensione del marker #D: tipo di marker pl.plot(x,y, 'rd', markersize=5 #label pl.plot(x,y, 'rd', markersize=5, label='sin(x)')
Esercizio 1 #####Impostazione finestra####
Esercizio 1 #####Impostazione finestra#### #Griglia
Esercizio 1 #####Impostazione finestra#### #Griglia pl.grid(true)
Esercizio 1 #####Impostazione finestra#### #Griglia pl.grid(true) #Legenda
Esercizio 1 #####Impostazione finestra#### #Griglia pl.grid(true) #Legenda pl.legend()
Esercizio 1 #####Impostazione finestra#### #Griglia pl.grid(true) #Legenda pl.legend() #Titolo grafico
Esercizio 1 #####Impostazione finestra#### #Griglia pl.grid(true) #Legenda pl.legend() #Titolo grafico pl.title( Sin(x) )
Esercizio 1 #####Impostazione finestra#### #Griglia pl.grid(true) #Legenda pl.legend() #Titolo grafico pl.title( Sin(x) ) #####Il grafico è stato creato, ma non ancora mostrato####
Esercizio 1 #####Impostazione finestra#### #Griglia pl.grid(true) #Legenda pl.legend() #Titolo grafico pl.title( Sin(x) ) #####Il grafico è stato creato, ma non ancora mostrato#### #mostrare la finestra
Esercizio 1 #####Impostazione finestra#### #Griglia pl.grid(true) #Legenda pl.legend() #Titolo grafico pl.title( Sin(x) ) #####Il grafico è stato creato, ma non ancora mostrato#### #mostrare la finestra pl.show()
Esercizio 1
Esercizio 2 Replicare il seguente grafico
Esercizio 2 #creare il dominio: valori da 0 a 1
Esercizio 2 #creare il dominio: valori da 0 a 1 t = numpy.arange(0,1.01,0.01)
Esercizio 2 #creare il dominio: valori da 0 a 1 t = numpy.arange(0,1.01,0.01) #codominio della funzione (prima finestra)
Esercizio 2 #creare il dominio: valori da 0 a 1 t = numpy.arange(0,1.01,0.01) #codominio della funzione (prima finestra) y1 = numpy.sin(2*pi*t)*exp(-5*t)
Esercizio 2 #creare il dominio: valori da 0 a 1 t = numpy.arange(0,1.01,0.01) #codominio della funzione (prima finestra) y1 = numpy.sin(2*pi*t)*exp(-5*t) #codominio della prima funzione (seconda finestra)
Esercizio 2 #creare il dominio: valori da 0 a 1 t = numpy.arange(0,1.01,0.01) #codominio della funzione (prima finestra) y1 = numpy.sin(2*pi*t)*exp(-5*t) #codominio della prima funzione (seconda finestra) y11 = numpy.sin(2*pi*t)
Esercizio 2 #creare il dominio: valori da 0 a 1 t = numpy.arange(0,1.01,0.01) #codominio della funzione (prima finestra) y1 = numpy.sin(2*pi*t)*exp(-5*t) #codominio della prima funzione (seconda finestra) y11 = numpy.sin(2*pi*t) #codominio della seconfda funzione (seconda finestra)
Esercizio 2 #creare il dominio: valori da 0 a 1 t = numpy.arange(0,1.01,0.01) #codominio della funzione (prima finestra) y1 = numpy.sin(2*pi*t)*exp(-5*t) #codominio della prima funzione (seconda finestra) y11 = numpy.sin(2*pi*t) #codominio della seconda funzione (seconda finestra) y11 = numpy.cos(2*pi*t)
Esercizio 2 ###includere più grafici nella stessa finestra: subplot### subplot(xyn)-> la finestra viene divisa in x righe e y colonne n:numero del grafico selezionato (max= n*m)
Esercizio 2 ###includere più grafici nella stessa finestra: subplot### subplot(xyn)-> la finestra viene divisa in x righe e y colonne n:numero del grafico selezionato (max= n*m) X=2, y=2 n= 1 n= 2 n= 3 n= 4
Esercizio 2 #creazione prima finestra
Esercizio 2 #creazione prima finestra pl.subplot(211)
Esercizio 2 #creazione prima finestra pl.subplot(211) #plotting funzione y1
Esercizio 2 #creazione prima finestra pl.subplot(211) #plotting funzione y1 pl.plot(t, y1, 'b', label='y1', linewidth=5)
Esercizio 2 #creazione prima finestra pl.subplot(211) #plotting funzione y1 pl.plot(t, y1, 'b', label='y1', linewidth=5) #riempimento area della funzione
Esercizio 2 #creazione prima finestra pl.subplot(211) #plotting funzione y1 pl.plot(t, y1, 'b', label='y1', linewidth=5) #riempimento area della funzione pl.fill(t, y1, 'r') #r: colore di riempimento
Esercizio 2 #creazione prima finestra pl.subplot(211) #plotting funzione y1 pl.plot(t, y1, 'b', label='y1', linewidth=5) #riempimento area della funzione pl.fill(t, y1, 'r') #r: colore di riempimento #impostazione automatica dei limiti degli assi
Esercizio 2 #creazione prima finestra pl.subplot(211) #plotting funzione y1 pl.plot(t, y1, 'b', label='y1', linewidth=5) #riempimento area della funzione pl.fill(t, y1, 'r') #r: colore di riempimento #impostazione automatica dei limiti degli assi pl.axis('auto')#parametro: lista con estremi o keyword (auto, normal, equal, etc.)
Esercizio 2 #creazione prima finestra pl.subplot(211) #plotting funzione y1 pl.plot(t, y1, 'b', label='y1', linewidth=5) #riempimento area della funzione pl.fill(t, y1, 'r') #r: colore di riempimento #impostazione automatica dei limiti degli assi pl.axis('auto')#parametro: lista con estremi o keyword (auto, normal, equal, etc.) #legenda e griglia
Esercizio 2 #creazione prima finestra pl.subplot(211) #plotting funzione y1 pl.plot(t, y1, 'b', label='y1', linewidth=5) #riempimento area della funzione pl.fill(t, y1, 'r') #r: colore di riempimento #impostazione automatica dei limiti degli assi pl.axis('auto')#parametro: lista con estremi o keyword (auto, normal, equal, etc.) #legenda e griglia pl.legend() pl.grid(true)
Esercizio 2 #creazione seconda finestra
Esercizio 2 #creazione seconda finestra pl.subplot(212)
Esercizio 2 #creazione seconda finestra pl.subplot(212) #plotting funzione y11 e y12
Esercizio 2 #creazione seconda finestra pl.subplot(212) #plotting funzione y11 e y12 pl.plot(t, y11, 'b', label='y11', linewidth=5)
Esercizio 2 #creazione seconda finestra pl.subplot(212) #plotting funzione y11 e y12 pl.plot(t, y11, 'b', label='y11', linewidth=5) pl.plot(t, y12, 'b', label='y12', linewidth=5)
Esercizio 2 #creazione seconda finestra pl.subplot(212) #plotting funzione y11 e y12 pl.plot(t, y11, 'b', label='y11', linewidth=5) pl.plot(t, y12, 'b', label='y12', linewidth=5) #riempimento area compresa tra due funzioni
Esercizio 2 #creazione seconda finestra pl.subplot(212) #plotting funzione y11 e y12 pl.plot(t, y11, 'b', label='y11', linewidth=5) pl.plot(t, y12, 'b', label='y12', linewidth=5) #riempimento area compresa tra due funzioni pl.fill_between(t, y1, facecolor='g') #facecolor: colore di riempimento
Esercizio 2 #creazione seconda finestra pl.subplot(212) #plotting funzione y11 e y12 pl.plot(t, y11, 'b', label='y11', linewidth=5) pl.plot(t, y12, 'b', label='y12', linewidth=5) #riempimento area compresa tra due funzioni pl.fill_between(t, y1, facecolor='g') #facecolor: colore di riempimento pl.axis('auto')
Esercizio 2 #creazione seconda finestra pl.subplot(212) #plotting funzione y11 e y12 pl.plot(t, y11, 'b', label='y11', linewidth=5) pl.plot(t, y12, 'b', label='y12', linewidth=5) #riempimento area compresa tra due funzioni pl.fill_between(t, y1, facecolor='g') #facecolor: colore di riempimento pl.axis('auto') pl.legend()
Esercizio 2 #creazione seconda finestra pl.subplot(212) #plotting funzione y11 e y12 pl.plot(t, y11, 'b', label='y11', linewidth=5) pl.plot(t, y12, 'b', label='y12', linewidth=5) #riempimento area compresa tra due funzioni pl.fill_between(t, y1, facecolor='g') #facecolor: colore di riempimento pl.axis('auto') pl.legend() pl.grid(true)
Esercizio 2 #creazione seconda finestra pl.subplot(212) #plotting funzione y11 e y12 pl.plot(t, y11, 'b', label='y11', linewidth=5) pl.plot(t, y12, 'b', label='y12', linewidth=5) #riempimento area compresa tra due funzioni pl.fill_between(t, y1, facecolor='g') #facecolor: colore di riempimento pl.axis('auto') pl.legend() pl.grid(true) pl.show()
Esercizio 3 Definire una funzione capace di plottare una gaussiana, che prende come parametri, oltre all'array del dominio, anche il valore medio e la deviazione standard
Esercizio 3 #Possibile soluzione. mu=media,sd=dev.standard #Di default si è scelto di dare mu=0, sd=0.2 def gaussian(x, mu=0, sd=0.2): y = 1/(sd*np.sqrt(2*pi))*exp(-((x-mu)**2)/(sd**2)) pl.plot(x,y, 'b') pl.axis('auto') pl.grid(true) #Esempio di invocazione: x = np.arange(-1, 1.00, 0.01) gaussian(x)
Esercizio 3
Esercizio 3 #Esempio di invocazione: x = np.arange(-1.50, 1.50, 0.01) gaussian(x, 0.5, 0.3)