Per disegnare più grafici nella stessa finestra è sufficiente crearli uno dopo l’altro

from vpython import *
DATA1 = [(0,0), (1,1), (2, 1)]
DATA2 = [(0,1), (1,1), (2, 0)]
gcurve(data = DATA1)
gcurve(data = DATA2)
Il risultato è deludente perché i due grafici non si distinguono!
Si può agire sugli attributi delle curve, per esempio sul colore

from vpython import *
DATA1 = [(0,0), (1,1), (2, 1)]
DATA2 = [(0,1), (1,1), (2, 0)]
gcurve(color = color.blue,
data = DATA1)
gcurve(color = color.red ,
data = DATA2)
Per agire sugli attributi della finestra è necessario crearla esplicitamente
- (6) Viene aperta la finestra grafica cyan
- (9) Il grafico blue viene realizzato nella finestra cyan
- (12) Il grafico red viene realizzato nella finestra cyan

from vpython import *
DATA1 = [(0,0), (1,1), (2, 1)]
DATA2 = [(0,1), (1,1), (2, 0)]
graph(background = color.cyan,
width = 400, height = 300)
gcurve(color = color.blue,
data = DATA1)
gcurve(color = color.red,
data = DATA2)
Per disegnare più grafici in finestre separate si generano più finestre e ogni singolo grafico dopo la finestra corrispondente
- (6) Viene aperta la finestra grafica cyan
- (8) Il grafico blue viene realizzato nella finestra cyan
- (11) Viene aperta la finestra grafica yellow
- (14) Il grafico red viene realizzato nella finestra yellow

from vpython import *
DATA1 = [(0,0), (1,1), (2, 1)]
DATA2 = [(0,1), (1,1), (2, 0)]
graph(background = color.cyan,
width = 400, height = 300)
gcurve(color = color.blue,
data = DATA1)
graph(background = color.yellow,
width = 400, height = 300)
gcurve(color = color.red,
data = DATA2)
Con la tecnica precedente sia le finestre che i grafici sono oggetti anonimi, non possono essere richiamati per apportare modifiche (nuovi punti, …)
Con nome
Se ogni oggetto ha un nome, diventa una variabile, allora il codice diventa più flessibile
from vpython import *
DATA1 = [(0,0), (1,1), (2, 1)]
DATA2 = [(0,1), (1,1), (2, 0)]
g1 = graph(background = color.cyan , width = 400, height = 300)
g2 = graph(background = color.yellow, width = 400, height = 300)
c1 = gcurve(graph = g1, color = color.blue, data = DATA1)
c2 = gcurve(graph = g2, color = color.red , data = DATA2)
Gli oggetti verranno associati alla finestra specificata con graph = ....
Gli oggetti g1, g2, c1, c2, … possono essere richiamati per apportare degli aggiornamenti
g1.background, cambia il colore di fondo di g1c1.plot([3, 3]), aggiunge un nuovo punto a c1
Metodi
g.delete() | Elimina la finestra e i grafici al suo interno |
graph.get_selected() | Restituisce la finestra attiva (?) |
g.select() | La finestra diventa quella attiva e riceverà i nuovi grafici |