da Cristina | Mag 31, 2021 | Python
In questa lezione studieremo come utilizzare plot in Matplotlib oer disegnare dei grafici. La funzione plot() è infatti utilizzata per disegnare vari tipi di grafici. Nel corso del tutorial vedremo vari esempi pratici.
Disegniamo un grafico con la funzione Plot di Matplotlib
Partiamo dunque con degli esempi per capire il funzionamento della funzione plot() ed i suoi campi di applicazione.
Come prima cosa disegniamo una semplice retta, passando a plot() una lista di numeri, un semplice array di 3 numeri:
import matplotlib.pyplot as plt
plt.plot([5,10,15])
plt.show()
In questo modo i valori indicati tra parentesi quadre rappresentano i valori di y, mentre i valori di x saranno assunti di default pari a 0,1,2,3.
Ciò vuol dire che, nel nostro caso, avremo queste coordinate (0,5), (1,10), (2,15).
Poi, grazie a plt.show() visualizziamo il grafico così ottenuto. Provatelo nel compilatore online:
Esempio di grafico con la funzione plot di Matplotlib
Disegniamo un altro semplice grafico. Questa volta passiamo alla funzione plot() i seguenti valori: [x1,x2], [y1,y2].
Cioè il punto iniziale e finale di x ed il punto iniziale e finale di y:
import matplotlib.pyplot as plt
plt.plot([1,2],[4,8])
plt.show()
Altro esempio di grafico con la funzione plot di Matplotlib
Proviamo a disegnare una spezzata, definendo i valori dell’asse x e y, come degli array. Dopo passiamo questi valori alla funzione plot(), infine utilizziamo sempre la funzione show() per mostrare il grafico ottenuto.
Di seguito ecco il codice di esempio:
import matplotlib.pyplot as plt
x = [1,5,3]
y = [3,6,9]
plt.plot(x,y)
plt.show()
NumPy e Matplotlib
In questo esempio utilizziamo la libreria NumPy per creare degli array. Poi passiamo gli array alla funzione plot(). Infine visualizziamo il grafico così ottenuto.
import matplotlib.pyplot as plt
import numpy as np
xaxis = np.array([2, 6])
yaxis = np.array([3, 9])
plt.plot(xaxis, yaxis)
plt.show()
In definitiva è come passare la coppia di valori (2,3), (6,9)
In questa lezione abbiamo visto solo degli esempi base della funzione plot() di Matplotlib, nelle prossime lezioni avremo modo di approfondire con tanti altri esempi, personalizzando i grafici con marker, linestyle, label, title, ecc…
Useful links
Python tutorial
Python Compiler
Install Python
Variables
Assignment operators
Strings
Casting
Print Python
Python max()
da Cristina | Mag 31, 2021 | Python
In questa lezione parleremo del metodo sort() di Python utile per ordinare velocemente una lista in ordine crescente o decrescente.
Realizziamo dunque alcuni esempi per capirne il funzionamento.
Ordinamento crescente/decrescente di una lista con Python sort
Prendiamo in input una lista di numeri qualsiasi ed applichiamo il metodo sort su di essa per effettuare l’ordinamento in senso crescente.
numbers = [1,7,9,3,4]
numbers.sort()
print(numbers)
Parametro reverse di Python sort
Ordiniamo adesso in ordine descrescente utilizzando il parametro opzionale reverse. Se reverse è False si ordina la lista in senso crescente, è infatti il valore di default, se invece reverse è True, si ordina la lista in senso descrescente.
Ecco un esempio:
numbers = [1,7,9,3,4]
numbers.sort(reverse=True)
print(numbers)
Parametro key di sort
Il parametro key consente di specificare un criterio di ordinamento in base ad una funzione.
Facciamo un esempio ordinando una lista in base alla lunghezza dei nomi. Definiamo una funzione che calcola la lunghezza dei nomi di un array.
Applichiamo l’ordinamento impostando la key con la funzione definita.
Ecco di seguito il semplice esempio dell’algoritmo di ordinamento Python sort():
names = ['Paul','Robert','Elena','Tom']
def len_names(array):
return len(array)
names.sort(key=len_names)
print(names)
Se volessimo ordinare in ordine inverso, basterà indicare anche il parametro reverse.
names = ['Paul','Robert','Elena','Tom']
def len_names(array):
return len(array)
names.sort(reverse = True, key=len_names)
print(names)
Esempio di ordinamento con Python sort
In questo esempio proviamo ad ordinare una lista di lettere maiuscole e minuscole.
names = ['B','a','C','s']
names.sort()
print(names)
In output avremo: [‘B’, ‘C’, ‘a’, ‘s’].
Il risultato ottenuto non è quello che ci aspettavamo! Perchè? Ovviamente perché ogni lettera dell’alfabeto corrsiponde ad un carattere della codifica ASCII e le lettere maiuscole hanno una codifica diversa rispetto alle minuscole.
Possiamo ottenere un ordinamento corretto ad esempio convertendo tutti i caratteri della lista in minuscolo.
names = ['B','a','C','s']
names_order = [name.lower() for name in names]
names_order.sort()
print(names_order)
Potremmo anche scrivere in questo modo:
names = ['B','a','C','s']
for i in range(len(names)):
names[i] = names[i].lower()
names.sort()
print(names)
Conclusione
In questa lezione abbiamo visto come ordinare velocemente una lista utilizzando Python sort, nelle prossime lezioni studieremo alcuni algoritmi di ordinamento a scopo didattico.
Alcuni link utili
Indice tutorial sul linguaggio Python
1 – Introduzione al linguaggio Python
2 – Le variabili
3 – Operatori aritmetici e di assegnazione
4 – Stringhe
5 – Casting
6 – Input e print
7 – Primi esercizi in Python
8 – Errori in Python
9 – Script Python
10 – Scambio di variabili