Visualizzazione 2 - Challenge
1. Il protosincrotrone
✪✪ Requisiti: matplotlib, strutture varie
♫ Plottiam ♫ Plottiam ♫ ! In un recente esperimento svolto in collaborazione tra il CERN e la NASA abbiamo raccolto un sacco di dati.
Si tratta di punti nello spazio che ci segnalano come i bosoni bi-gravitazionali interagiscono con le stringhe di campo finito per comporre il flusso canalizzatore della tarapia tapioca.
Ogni scienziato che partecipava all’esperimento ha usato un formato diverso per i dati, ma l’idea di fondo è sempre la stessa:
[[1, 10], [0, 0]]
rappresenta
x y
punto1(1, 0)
punto2(10, 0)
e similmente per le altre strutture.
([4, 4], [0, 4])
x y
punto1(4, 0)
punto2(4, 4)
Matplotlib ci mette a disposizione una funzione per plottare segmenti definiti per punti:
plt.plot(lista di x, lista di y)
prova a chiamare plot tante volte, una per ciascun segmento da visualizzare - noterai che ogni segmento verrà mostrato di un colore casuale diverso.
prova a chiamare plot una sola volta per plottare tutti i punti in un colpo solo, dovresti ottenere una linea spezzata dello stesso colore.
[1]:
import matplotlib
import matplotlib.pyplot as plt
# Questi sono i dati raccolti dai vari laboratori
part1 = [[1, 10], [0, 0]]
part2 = ([4, 4], [0, 4])
part3 = {"x": [8, 8], "y": [0, 4]}
more_parts = {
"part4":[[4, 8], [4, 4]],
"part5":[[4, 6], [4, 6]],
"part6":[[8, 6], [4, 6]]
}
# scrivi qui sotto
2. Il Trader
✪✪ Un’analisi di mercato mira a comparare la performance di un titolo con il mercato di riferimento (benchmark), riportati in una tabella verticale in questo formato:
giorno benchmark titolo
0 18 9
2 19 11
4 15 7
6 4 9
8 8 11
10 16 12
12 17 13
14 11 9
16 9 11
18 5 10
Sono state compiute 10 rilevazioni a distanza ciascuna di 2 giorni. Si vuole visualizzare:
l’andamento del benchmark, in blu
l’andamento del titolo, in arancione
il minimo e il massimo del solo titolo come linee orizzontali, rispettivamente rossa e verde
mostra i giorni come interi (prova a usare
plt.xticks
)RICORDATI di impostare il titolo del grafico e gli assi
USA numpy il più possibile
SUGGERIMENTI:
per avere grafici multipli in sovraimpressione è sufficiente fare chiamate successive a
plt.plot
nella stessa cella.per i colori, usa l’attributo
color=
nelle chiamate aplt.plot
per le linee tratteggiate, usa l’indicatore
'--'
[3]:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
m = np.array([
[ 0,18, 9],
[ 2,19,11],
[ 4,15, 7],
[ 6, 4, 9],
[ 8, 8, 11],
[10,16,12],
[12,17,13],
[14,11, 9],
[16, 9,11],
[18, 5,10],
])
# scrivi qui
3. IgNobel
✪✪ Requisiti: matplotlib, random, strutture varie
Come ogni scienziato indegno di rispetto sa, quando i dati degli esperimenti non tornano è il momento di inventarsi numeri.
Per creare grafici più credibili proviamo a generare due sequenze di punti casuali utilizzando la libreria random
, e poi proviamo a plottare questi punti.
ogni sequenza deve avere almeno 200 punti
per avere un risultato più interessante proviamo a vedere sequenze di punti estratti da distribuzioni statistiche differenti: UNIFORM e EXPOVARIATE
riesci a plottare le sequenze ordinate?
SUGGERIMENTO: random
mette già a disposizione dei metodi per fare sampling da distribuzioni.
[4]:
import matplotlib
import matplotlib.pyplot as plt
import random
# scrivi qui
