Dans cette section nous décrivons les caractéristiques pour tracer des graphes
avec des marqueurs et étiquettes. Voici un exemple simple qui montre comment tracer un graphe:
from visual.graph import * # importation des fonctions de tracés
funct1 = gcurve(color=color.cyan) # une courbe connexe
Importer visual.graph
rend disponible tous les objets Visual ainsi que le module pour tracer des graphes.
Les graphes sont automatiquement redimensionnés pour afficher toutes les données
dans la fenêtre.
Une courbe connexe (gcurve)
n'est qu'un des nombreux tracés de graphes disponibles. Il y a d'autres options comme
des points discontinus (gdots),
des barres verticales (gvbars), des barres horizontales (ghbars),
et des données rangées dans des casiers affichés comme des barres verticales (ghistogram;
voir plus loin dans la discussion). Lors de la création d'un de ces objets, vous pouvez spécifier
un attribut de couleur. Pour gvbars et ghbars,
vous pouvez aussi spécifier un attribut delta, qui
spécifie la largeur de la barre (la valeur par défaut est delta=1.).
Vous pouvez tracer plus d'une chose sur le même graphe:
Dans l'opération de traçage, vous pouvez spécifier une couleur différente
pour outrepasser le réglage original:
mydots.plot(pos=(x1,y1), color=color.green)
Quand vous créez un objet gcurve,
gdots, gvbars,
ou ghbars, vous pouvez fournir une liste
de points à tracer, comme c'est le cas avec l'objet ordinaire curve:
points = [(1,2), (3,4), (-5,2), (-5,-3)]
data = gdots(pos=points, color=color.blue)
Cette option de liste est disponible seulement lors de la création
de l'objet gdots.
Options générales de gdisplay
Vous pouvez établir un gdisplay
pour définir la taille, position et le titre de la barre de titre de la fenêtre graphique,
spécifier les noms des axes x et y, et spécifier les valeurs maximales pour chaque axe,
avant la création d'un objet gcurve ou d'un autre objet de
tracés de graphes:
Dans cet exemple, la fenêtre graphique sera localisée à la position (0,0),
avec une taille de 600 pixels par 150 pixels et il y aura 'N vs. t' dans la barre de titre.
L'axe horizontal aura le titre 't' et l'axe vertical le titre 'N'.
Au lieu d'un redimensionnement automatique du graphe pour afficher toutes les données,
le graphe aura des limites fixées. L'axe horizontal s'étendra de -20. à +50.,
et l'axe vertical s'étendra de -2000. à +5000. (xmin et ymin devront être
négatifs; xmax et ymax devront être positifs.) La couleur du premier plan (le blanc
par défaut) est le noir et la couleur d'arrière plan (noir par défaut) est le blanc.
Si vous exécutez simplement gdisplay(), les valeurs par défaut
sont x=0, y=0,
width=800, height=400,
aucun titre, redimensionnées automatiquement.
Chaque gdisplay possède l'attribut display,
si bien que vous pouvez manipuler les aspects basiques d'affichage d'une fenêtre graphique:
graph1.display.visible = 0 # rend l'affichage invisible
Vous pouvez avoir plus d'une fenêtre graphique: créez simplement un autre
gdisplay. Par défaut, chaque objet graphique
créé selon un gdisplay appartient à cette fenêtre.
Vous pouvez alors spécifier à quelle fenêtre appartient le nouvel objet:
energy = gdots(gdisplay=graph1, color=color.blue)
Histogrammes (données triées rangées dans des casiers)
Le but de ghistogram est
de trier des données dans des casiers et d'afficher la distribution. On suppose que vous avez une liste
d'âges d'un groupe de personnes, tel que [5, 37, 12, 21, 8, 63, 52, 75, 7].
Vous voulez trier ces données dans des tranches de 20 ans et afficher les nombres
de chaque tranche sous la forme de barres verticales. La première tranche (0 à 20) contiendra
4 personnes [5, 12, 8, 7], la deuxième tranche (20 à 40) contiendra 2 personnes [21, 37],
la troisième tranche (40 à 60) contiendra 1 personne [52], et la quatrième tranche (60 à 80)
contiendra 2 personnes [63, 75]. Voici comment vous pourriez faire cet affichage:
ages.plot(data=agelist1) # plot the age distribution
.....
ages.plot(data=agelist2) # plot a different distribution
Vous spécifiez une liste (casiers) dans laquelle les données vont être triées.
Dans l'exemple donné ici, les casiers vont de 0 à 80 par tranche de 20. Par défaut, si vous exécutez plus tard
ages.plot(data=agelist2)
la nouvelle distribution remplace l'ancienne. D'un autre côté, si vous exécutez
ages.plot(data=agelist2, accumulate=1)
les nouvelles données seront ajoutées aux anciennes.
chaque opération accumulera les données et calculera la moyenne des données accumulées.
Par défaut, il n'y a aucune accumulation et aucun calcul de la moyenne.
gdisplay contre display
Une fenêtre gdisplay est étroitement liée à une fenêtre display. La principale différence
est qu'un gdisplay est essentiellement bidimensionnel et a des facteurs d'échelle en x et y non-uniformes.
Lorsque vous créez un gdisplay (explicitement ou implicitement avec
l'objet gcurve ou un autre objet graphique), l'affichage courant est sauvé et restauré,
si bien que la création plus loin d'un objet ordinaire Visual tel que la sphère ou la boîte
sera correctement associée avec le précédent affichage, et non plus avec le récent gdisplay.