Satimage Précédent | Suivant
La chart view
Accueil Documentation SmileLab Scripting Les objets graphiques Graphic view Chart view  
Table des matières
Introduction
La classe chart view est une classe virtuelle. Elle définit un certain nombre de propriétés qui sont communes à ses descendants, le plot view et le planar view. Ces propriétés permettent d'adapter le graphique aux données ainsi que de régler les divers composants du graphique :
  • les axes : les axes primaires (ceux qui affichent l'échelle) et secondaires (les deux autres bords de la zone d'affichage des données),
  • les graduations : grandes graduations ("major ticks"), celles qui correspondent aux échelles, et petites graduations ("minor ticks"),
  • le quadrillage.
Réglage des échelles
  • pour choisir une graduation logarithmique pour un axe, réglez la propriété log xaxis ou log yaxis correspondante à true. Par défaut, ces propriétés sont réglés à false, les axes sont linéaires.
  • les limites des axes se règlent au moyen de la propriété limits, une liste de quatre nombres réels xmin, xmax, ymin, ymax. Par défaut limits est réglé sur {"auto", "auto", "auto", "auto"}.
    Vous pouvez en effet fournir pour chacune de ces valeurs, au lieu d'un nombre, la chaîne de caractères "auto" auquel cas SmileLab fixe automatiquement la limite d'axe en question. Attention, dans certains cas SmileLab ne peut pas fixer automatiquement des limites d'axes valides, et le graphique restera alors blanc.
  • la propriété current limits est une propriété en lecture seulement (on ne peut que la consulter, pas la modifier). C'est une liste de quatre nombres, qui indiquent les limites des axes. Cette propriété permet de connaître les limites des axes qui sont réglés sur "auto", et également de connaître les limites des axes après un zoom (ce qui ne modifie pas la propriété limits).
Options d'affichage de la chart view
Voici quelques conventions générales sur certains types de données qu'utilise Smile.
  • les propriétés qui définissent une couleur attendent une couleur codée "rbga", c'est-à-dire une liste de trois ou de quatre nombres réels entre 0 et 1. Cette liste {r, g, b, a} indique les composantes rouge, verte et bleue de la couleur ainsi que son opacité, optionnelle (1 par défaut).
  • les propriétés qui spécifient une police de caractère attendent une chaîne de caractères contenant le nom d'une police. Pour connaître les polices disponibles, déroulez le menu Texte ▸ Police ou utilisez l'outil Font dialog dans le menu User Script ().
  • les propriétés qui attendent une chaîne de caractères destinée à être affichée --- telles que name, xlabel ou ylabel --- acceptent une famille de codes destinés à permettre l'écriture d'expressions mathématiques. Cette famille est un sous-ensemble des symboles mathématiques définis dans LaTeX. Par exemple pour afficher Γ→±∞, vous indiquez la chaîne \Gamma\rightarrow\pm\infty. Les symboles mathématiques reconnus dans SmileLab sont les mêmes que ceux qu'on peut utiliser dans la bibliothèque graphique Graphic Library, et qui sont documentés dans la page Les symboles supportés par DrawString.
Réglages de la chart view :
frame kind
la propriété frame kind détermine plusieurs options du graphique simultanément. frame kind est un entier codé sur 4 bits, prenant ses valeurs entre 0 et 15 compris, chaque bit correspondant à une option du graphique. Pour activer l'option en question, mettre le bit en question à 1. Par défaut, frame kind vaut 15 (tous les bits à 1).
Le bit 1 contrôle l'affichage des axes secondaires.
Le bit 2 contrôle l'affichage des graduations sur les axes secondaires.
Le bit 3 contrôle l'affichage du quadrillage.
Le bit 4 contrôle l'affichage des graduations vers l'intérieur (s'il est à 0 les graduations s'affichent vers l'extérieur de la zone d'affichage des données).
set x to runningsum (randomarray 20)
set c to QuickCurve({}, x, 0)
set v to chart view of c
set frame kind of v to 0
draw v
major tick length, minor tick length, pen width
pour régler la longueur des traits de graduation sur les axes, utilisez les propriétés major tick length et minor tick length, en pixels. frame kind vous permet, comme indiqué ci-dessus, de régler les graduations sur l'extérieur ou l'intérieur des axes. La propriété pen width définit l'épaisseur du trait des axes.
grid color, grid pen width, grid dash
pour modifier le quadrillage, outre la propriété frame kind qui détermine s'il s'affiche ou non, vous pouvez régler sa couleur au moyen de la propriété grid color, son épaisseur de trait au moyen de la propriété grid pen width et son pointillé au moyen de la propriété grid dash. grid dash est une liste de réels de la forme {phase, tr1, esp1, tr2, ... , espN, trN}. Toutes ces valeurs sont en pixels. {tr1, tr2 ...} indiquent la longueur des traits successifs tandis que {esp1, esp2 ...} indiquent la longueur des espaces successifs entre les traits. Enfin phase indique l'origine du pointillé, par exemple si phase est exactement égal à tr1 + esp1 le pointillé commencera par le deuxième trait, de longueur tr2.
fill color
la couleur de fond du graphique se règle au moyen de la propriété fill color.
pen color
la couleur des axes du graphique se règle au moyen de la propriété pen color.
back pdf, front pdf
les propriétés back pdf et front pdf permettent d'afficher, soit en image de fond (back pdf) soit au-dessus du graphique (front pdf), une image PDF : soit en provenance d'un document PDF, soit obtenu par script. Les instructions à ce sujet sont les mêmes que pour la picture view.
convert coordinates
pour obtenir les coordonnées en pixels d'un point (x,y) donné en unités utilisateur (les unités indiquées par les axes), utilisez la commande convert coordinates ... in. L'exemple ci-dessous utilise convert coordinates pour afficher une flèche pointant précisément sur un point de la courbe. Les coordonnées fournies par convert coordinates sont relatives à l'origine des coordonnées de la chart view, origine définie dans sa propriété frame.
set c to QuickCurve({}, "0.5+0.25*sin(2*pi*x*x)", 0)
set v to container of c -- v est la graphic view
set p to {1 / (sqrt (2)), 0.5}
set p to convert coordinates p in v
set m to sublist p with {30, 0}
BeginFrontFigure(v)
MoveTo(m)
LineTo(p)
SetArrowSize({10, 15, 4})
ArrowPath(0)
DrawPath(3)
EndFrontFigure()
draw v
name, xlabel, ylabel
Le nom de la vue défini par la propriété name s'affiche au-dessus de la frame de la vue. Ce nom peut contenir des retours ligne.
chacun des deux axes accepte une légende, c'est-à-dire deux chaînes de caractères qui s'affichent, respectivement, au-dessous de l'axe des x et à la gauche de l'axe des y. Le contenu des légendes correspond aux propriétés xlabel et ylabel.
xlabel offset, ylabel offset
Vous pouvez modifier la distance entre l'axe et sa légende au moyen des propriétés xlabel offset et ylabel offset (en pixels). Pour décaler la légende de l'axe des x vers le bas, augmentez xlabel offset. Pour décaler la légende de l'axe des y vers la gauche, augmentez ylabel offset.
label text font, label text size
Vous pouvez régler la police des légendes, au moyen des propriétés label text font et label text size.
text font, text size
vous pouvez régler la police utilisée pour afficher les échelles des axes, au moyen des propriétés text font et text size.
xaxis labels positions, xaxis labels tilt, xaxis labels
Vous pouvez modifier la position à laquelle ces valeurs s'affichent, en réglant la propriété xaxis labels positions à une liste de réels, en unités utilisateur.
Vous pouvez modifier l'angle avec lequel ces valeurs s'affichent, en réglant la propriété xaxis labels tilt à une valeur non nulle (en radians).
Enfin, vous pouvez personnaliser complètement l'axe des x en indiquant explicitement la liste des chaînes de caractères à afficher : c'est le rôle de la propriété xaxis labels. Utilisez cette possibilité lorsqu'une échelle numérique n'est pas adaptée, par exemple si l'axe des x représente les 12 mois. Si vous utilisez la propriété xaxis labels pour afficher des abscisses personnalisées il est obligatoire d'indiquer leurs positions en fournissant une liste (de même longueur que xaxis labels) comme propriété xaxis labels positions.
set x to runningsum (randomarray 21 range {-1 / 2, 1})
set c to QuickCurve({}, x, 0)
set v to c's chart view
set text size of v to 12
set xaxis labels of v to {"", "10.2.1", "10.2.3", "10.2.4", "10.2.6"}
set xaxis labels positions of v to {0, 5, 10, 15, 20}
set xaxis labels tilt of v to pi / 6
draw v
legend text font, legend text size, legend pen width, legend fill color
bien que les légendes des sous-classes de la chart view ont des aspects différents les unes des autres, la classe chart view définit des réglages génériques pour la légende : la police de caractères est définie par legend text font et legend text size, l'épaisseur du trait est donnée en pixels par legend pen width, et la couleur du fond de la légende par legend fill color.
-- fond de la légende en jaune semi-transparent
set legend fill color of v to {1, 1, 0.8, 0.5}
-- trait fin autour de la légende
set legend pen width of v to 0.25
draw v
English version
Copyright ©2008 Paris, Satimage