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)

  1. prova a chiamare plot tante volte, una per ciascun segmento da visualizzare - noterai che ogni segmento verrà mostrato di un colore casuale diverso.

  2. 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:

  1. l’andamento del benchmark, in blu

  2. l’andamento del titolo, in arancione

  3. 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 a plt.plot

  • per le linee tratteggiate, usa l’indicatore '--'

expected-chart

[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


../_images/visualization_visualization2-chal_9_0.png