Computer 4 dummy

Informatica facile a portata di tutti

SciPy – Esempi grafici di Distribuzione Normale (cerchi ed ellissi)

In questo capitolo facciamo ancora un po di esempi di grafici creando cerchi ed ellissi utilizzando la distribuzione normale supponendo di voler campionare una Gaussiana bi dimensionale con media = 0 e varianza = 1.

Il risultato che otteniamo è una Gaussiana di forma circolare in quanto ogni dimensione non è correlata ed è indipendente l’una dall’altra.

A questo link potete trovare la precedente guida su come utilizzare il grafico scatter: https://computer4dummy.altervista.org/programmazione-guide-alla-programmazione/python-data-analisi/matplotlib-per-python/matplotlib-grafico-scatter-o-di-dispersione/

Utilizzando le funzioni già utilizzate nei capitoli precedenti aggiungiamo una nuova dimensione e quello che dovremmo ottenere rappresentando il tutto in un grafico scatter è una nuvola di punti distribuiti in forma circolare.

from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
 
r = np.random.randn(10000, 2)

plt.scatter(r[:,0], r[:,1])

Il grafico che otteniamo è il seguente:

SciPy - Esempi grafici di Distribuzione Normale (cerchi ed ellissi)
SciPy – Esempi grafici di Distribuzione Normale (cerchi ed ellissi)

Nella figura sopra gli assi x e y hanno una scala diversa pertanto l’immagine è più simile ad un ellisse piuttosto che ad un cerchio, per visualizzarlo correttamente basta aggiungere plt.axis(“equal”) per visualizzare gli assi con la stessa scala.

Qui un link utile: https://matplotlib.org/examples/pylab_examples/axis_equal_demo.html

from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt

r = np.random.randn(10000, 2)

plt.scatter(r[:,0], r[:,1])
plt.axis("equal")
plt.show()
SciPy - Esempi grafici di Distribuzione Normale (cerchi ed ellissi)
SciPy – Esempi grafici di Distribuzione Normale (cerchi ed ellissi)

In questo modo se vogliamo rappresentare un ellisse ci basta modificare la varianza sul secondo asse in questo modo:

from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt

r = np.random.randn(10000, 2)

r[:,1] = 6 * r[:,1] + 2

plt.scatter(r[:,0], r[:,1])
plt.axis("equal")
plt.show()

Quindi il risultato sarà il seguente:

SciPy - Esempi grafici di Distribuzione Normale (cerchi ed ellissi)
SciPy – Esempi grafici di Distribuzione Normale (cerchi ed ellissi)

Nella lezione successiva si vedrà come creare delle ellissi non allineate agli assi.

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.