Home
Tracer des graphes avec METAPOST
Contents
1. Tracer des graphes avec METAPOST John D HOBBY Bell Labs Lucent Technologies Murray Hill NJ 07974 Ce manuel est paru en is sous le titre Drawing Graphs With META POST Il est publi iciavec l aimable autorisation de l auteur Traduction fran aise de Pierre FOURNIER pierre fournier unilim fr et Jean C me CHARPENTIER jean come charpentier wanadoo fr ii Abstract This paper describes a graph drawing package that has been implemented as an extension to the METAPOST graphics language METAPOST has a powerful macro facility for implementing such extensions There arre also some new language features that support the graph macros Existing fea tures for generating and manipulating pictures allow the user to do things that would be difficult to achieve in a stand alone graph package Resume Ce papier d crit un package de trac de graphes qui a t impl ment comme une extension au langage graphique METAPOST METAPOST pos s de des macros puissantes pour impl menter de telles extensions Il existe galement quelques nouvelles caract ristiques du langage qui supportent des macros de graphes Les sp cificit s existantes pour produire et mani puler des figures permettent l utilisateur de faire des choses qui auraient t difficiles r aliser avec un package de graphes autonome Table des mati res 1 Introduction 2 Utilisation des macros graph 2 0 1 2 0 2 2 0 3 2 0 4 Commandes l mentaires de tra
2. composera la cha ne Knot 3 et la placera au dessus et gauche du n ud 3 du dernier chemin obtenu par la commande gdraw La lt position gt OUT place l tiquette relativement l ensemble du graphe 6 CHAPITRE 2 UTILISATION DES MACROS GRAPH Par exemple remplacer gdraw agepop91 d par glabel 1lft btex vbox hbox Population hbox en millions etex OUT glabel bot btex Age en ann es etex OUT gdraw apepopm d dans le fichier source de la figure 2 1 produit la figure 2 3 Ceci am liore le graphe en ajoutant des noms d axes et en utilisant un nouveau fichier de donn es agepopm d oti les chiffres de la population ont t divis s par 1 million pour viter les valeurs trop grandes On verra plus loin que de simples transformations telles que celles ci peuvent tre obtenues sans avoir a produire de nouveaux fichiers de donn es 4 3 Population en millions 9 1 0 20 40 60 80 ge en ann es FIG 2 3 Une version am lior e du graphe de la distribution d ge en 1991 Les possibilit s de TEX permettent de g rer des tiquettes sur plusieurs lignes avec la commande hbox l int rieur de commandes vbox utilis s dans l exemple pr c dent Cependant les utilisateurs de ATX trouveront sans doute plus naturel de recourir l environnement tabular 9 Les utilisateurs de troff peuvent utiliser btex nf Population en millions
3. gdata countries d s glabel s3 sl s2 endgraph 80 i Gre Spn J fwi jen Por Tai aS u Cze Sr C alex REA 70 hn Pu SKo USS lal 7 PMor Inpen Pt Esp rance Ken 2 nn de vie 60 ex Ing Zap RaT Taz Baad Sud 50 ep Use Nig Moz 0 1 0 2 05 1 2 5 10 20 P N B par habitant milliers de dollars FIG 2 8 Un nuage de points et les commandes qui le cr ent Chapitre 3 Manipulation de grands nombres METAPOST h rite du syst me de num ration virgule fixe du logiciel METRFONT de KNUTH 8 Les nombres sont exprim s comme multiples de 2716 et doivent avoir une valeur absolue inf rieure 32 768 KNUTH a choisi ce syst me parce qu il est parfaitement adapt la d finition des fontes et garantissait des r sultats identiques sur tous les types d ordinateur Les nombres virgule fixe posent rarement des probl mes dans METAPOST parce que les calculs sont bas s sur des coordonn es qui sont limit es par la taille du papier sur lequel les sorties doivent tre imprim es Ceci ne concerne pas les donn es d entr e pour les trac s de graphes Bien que les graphes soient plus pr sentables lorsque les axes sont gradu s avec des valeurs raisonnables pas trop grandes la stricte limite de l arithm tique serait un inconv nient Un moyen simple pour manipuler des grands nombres est d inclure la ligne input sarith et d utiliser les op rateurs
4. Summit New Jersey 1985 3 William S CLEVELAND A model for studying display methods of sta tistical graphics with discussion Journal of Computational and Statistical Graphics 3 para tre 4 William S CLEVELAND Visualizing Data Hobart Press Summit New Jersey a paraitre 5 J D HOBBY A user s manual for METAPOST Computing Science Technical Report n 162 AT amp T Bell Laboratories Murray Hill New Jersey April 1992 Peut tre obtenu par courrier send 162 from research cstr a netlib research att com Version fran aise Un manuel d utilisation pour METAPOST Cahiers GUTENBERG a paraitre 6 John D HOBBY Introduction to METAPOST In EuroTEX 92 Proceeding pages 21 36 september 1992 7 Adobe Systems Inc PostScript Language Reference Manual Addison Wesley Reading Massachusets 24 edition 1990 8 D E KNUTH METAFONT the Program Addison Wesley Reading Mas sachusets 1986 Volume D of Computers and typesetting 9 Leslie LAMPORT FX A Document Preparation System Addison Wes ley Reading Massachusets 1986 10 U S Bureau of the Census Statistical Abstracts of the United States 1992 Washington D C 112 edition 1992 11 Edward R TUFTE Visual Display of Quantitative Information Graphics Press Box 430 Cheshire Connecticut 06410 1983 33
5. axe Voir le manuel d utilisation 5 pour des explications des commandes draw et des l ments de syntaxe tels que les lt expressions images gt 3 4 CHAPITRE 2 UTILISATION DES MACROS GRAPH 4x 106 4 3x 10 2x 10 105 0 20 40 60 80 FIG 2 1 Graphique de la distribution d ge en 1991 aux tats Unis La commande gdraw lt expression gt lt liste d options gt dessine un graphe au trait Si l lt expression gt est de type cha ne de carac t res elle indique le nom d une fichier de donn es sinon c est un chemin qui donne la fonction dessiner La lt liste d options gt contient une ou plu sieurs options de dessin Elle peut galement tre vide Ces options sont withpen lt expression plume gt withcolor lt expression couleur gt dashed lt expression figure gt qui indiquent l paisseur de ligne la couleur ou le motif de trait comme l explique le manuel d utilisation 5 En plus des options standard de dessin la lt liste d options gt dans la d claration gdraw peut contenir plot lt expression dessin gt L lt expression dessin gt indique le symbole de trac qui sera employ chaque n ud du chemin L option plot supprime le dessin de la ligne de telle mani re que gdraw agepop91 d plot btex bullet etex produit seulement les points noirs bullets comme l illustre la figure 2 2 Si l on ajoute l option de dessin l o
6. tionne la gamme des valeurs de coordonn es x et y et met l chelle tout ce qui est n cessaire Tout ce qui est trac apr s l est fait dans un nouveau sys t me de coordonn es qui n a pas besoin d avoir quoique ce soit en commun avec le pr c dent moins que des commandes setrange imposent une gamme de valeurs similaire Par exemple les deux commandes setrange forcent les deux syst mes de coordonn es avoir les x entre 80 et 90 et les y gt 0 Lorsqu on utilise de multiples syst mes de coordonn es il faut sp cifier o sont les tiquettes d axe Par d faut les marques d axe sont situ es a gauche et sous le cadre du graphique lorsque la commande endgraph est interpr t e La figure 2 6 utilise la commande autogrid otick lft pour tiqueter le c t gauche du graphe avec l ordonn e y Cette com mande agit avant la commande setcoords Ceci supprime les tiquettes d axe par d faut ainsi une autre commande autogridest n cessaire pour tiqueter le bas et la droite du graphique uti lisant un nouveau syst me de coordonn es La syntaxe g n rale est autogrid lt commande d tiquette d axe gt lt commande d tiquette d axe gt lt liste d options gt ou lt commande d tiquette d axe gt lt vide gt lt marque ou grille gt lt suffixe d tiquette gt lt marque ou grille gt gridlitick otick Le lt suffixe d tiquette gt doit tre 1ft rt top bot Le p
7. etex 2 0 2 Syst mes de coordonn es Les macros graphiques du package graph d calent et remettent auto matiquement l chelle les coordonn es partir des fichiers de donn es et les chemins trac s avec gdraw ainsi que les positions glabel pour tenir dans le graphique Que l amplitude de l ordonn e y soit de 0 64 4 6 ou de 460 000 a 4 600 000 les valeurs se r partiront de fa on remplir environ 88 de la hauteur sp cifi e dans l instruction begingraph Naturellement les pais seurs de lignes les tiquettes et les symboles de trac ne sont pas remis a l chelle La commande set range contr le le processus de d calage et de mise l chelle en sp cifiant le minimum et le maximum des coordonn es setrange lt coordonn es gt lt coordonn es gt ou lt coordonn es gt to lt expression couple gt lt expression num rique ou chaine gt lt expression num rique ou chaine gt Le premier couple de lt coordonn es gt donne tin Ymin et le second indique max Ymax Les lignes xr Lmin T Lmax Y Ymin Ct Y Ymax d finissent un cadre rectangulaire autour du graphe dans les figures 2 1 a 2 3 Par exemple l ajout de l instruction setrange origin whatever whatever au fichier source de la figure 2 3 produit la figure 2 4 Le premier couple de lt coordonn es gt est donn par la valeur pr d finie et constante de type couple origin et les autres coordonn es ne sont pas sp cifi
8. binaires Sadd Ssub Smul et Sdiv la place de et Ces op rateurs sont inefficaces mais d une grande souplesse Ils acceptent des nombres ou des cha nes de caract res et renvoient des cha nes de caract res en notation exponentielle avec l exposant marqu par e par exemple 6 7e 11 signifie 6 7 x 107 L op rateur unaire Sabs lt string gt renvoie une cha ne de caract res repr sentant la valeur absolue Les op ra teurs Sleg et Sneq r alisent des comparaisons num riques sur des cha nes de caract res et renvoient un r sultat bool en IL argument d un op rateur unaire ne n cessite pas d tre entre parenth ses moins qu il ne s agisse d une expression mettant en jeu un op rateur binaire 17 18 CHAPITRE 3 MANIPULATION DE GRANDS NOMBRES draw begingraph 3in 2in draw begingraph 3in 2in glabel 1ft btex vbox hbox Quadrillions hbox de BTU etex OUT path pl numeric t gdata energy d S t 0 augment p1 1 0 for j 2 upto 5 t t scantokens j endfor picture lab augment p j 1 t lab2 btex lab3 btex lab4 btex charbon etex fuel etex gaz naturel etex lab5 btex hydo lectricit etex for j 5 downto 2 gfill pli 16j white glabel 1lft picture unfill bbox lab j draw lab j 7 length p j reverse plj 1 cycle withcolor endfor endgraph 60 hydro lectricit 40 101
9. de courbes ces valeurs ne sont normalement autoris es que pour les r sultats interm diaires Cette limitation est supprim e lorsque la variable warningcheck vaut z ro Dans les versions ant rieures de METAPOST cette limitation pouvait tre supprim e uniquement pour les variables Les constantes ex plicites devaient toujours tre strictement inf rieures 4 096 Pour tre com plet il faut aussi mentionner une autre des nouvelles caract ristiques de la version 0 60 de METAPOST Lorsque le mat riel TEX est inclus dans une figure par l instruction btex etex l paisseur des filets horizontaux et verticaux est arrondie exactement au nombre de pixels c est a dire les 32 ANNEXE B NOUVELLES CARACT RISTIQUES DU LANGAGE sorties interpr t es par METRPOST selon les r gles de conversion Post Script 7 font que la largeur de pixel est gale la valeur sup rieure de la largeur non arrondie En fait une relation similaire est encore valable pour toutes les paisseurs de ligne PostScript fixe les largeurs de ligne d abord en les transformant en coordonn es du p riph rique puis en les arrondis sant de fa on appropri e Bibliographie 1 Jon L BENTLEY et Brian W KERNIGHAN Grap a language for type setting graphs In Unix Research System Papers volume II pages 109 146 AT amp T Bell Laboratories Murray Hill New Jersey 20 edi tion 1990 2 William S CLEVELAND The Elements of Graphing Data Hobart Press
10. es N im porte quelle variable inconnue peut aussi bien fonctionner mais whatever est la repr sentation standard en METAPOST pour une valeur anonyme in connue Il faut noter que la syntaxe de set range permet de donner les valeurs des coordonn es comme des chaines de caract res Plusieurs commandes dans le package graph autorisent cette option Ceci est possible parce que le langage METAPOST utilise des nombres en virgule fixe qui doivent tre inf rieurs 32768 Cette limitation n est pas aussi s rieuse qu il n y para t parce que les graphes de bonne facture imposent que les valeurs des co ordonn es soient d une amplitude raisonnable 2 11 Si l on souhaite r ellement des abscisses et des ordonn es entre 0 et 1 000 000 l instruction setrange origin le6 le6 r alise ce travail Toute repr sentation en virgule fixe ou flottante est accep table tant que l exposant est introduit par la lettre e 8 CHAPITRE 2 UTILISATION DES MACROS GRAPH draw begingraph 3in 2in glabel 1lft btex vbox hbox Population hbox en millions etex OUT glabel bot btex Age en ann es etex OUT setrange origin whatever whatever gdraw agepopm d endgraph 4 3 Population en millions 2 1 0 T 0 20 40 60 80 ge ann es FIG 2 4 Graphe de la distribution d ge de la population pour l ann e 1991 et source correspondant Le
11. la question de savoir quel est le meilleur type de graphique pour une situation donn e est couverte dans de nombreux ouvrages par exemple CLEVELAND 2 3 4 et TUFTE 11 La finalit est de fournir au moins la puissance de grap sous Unix 1 mais au moyen du langage METAPOST D sormais le package est impl ment en utilisant la facilit des puissantes macros de METAPOST Les macros graph procurent les fonctionnalit s suivantes 1 chelles automatiques 2 g n ration automatique des graduations et de l tiquetage des axes et ou des quadrillages 3 syst mes de coordonn es multiples 4 chelles lin aires et logarithmiques 5 possibilit de manipuler des nombres en dehors des gammes habi tuelles 6 symboles de tra age arbitraires 7 commandes de tra age remplissage et tiquetage des graphes En plus de ces caract ristiques l utilisateur a galement acc s toutes les caract ristiques d crites dans le manuel d utilisation de METAPOST Celles ci incluent l acc s presque toutes les caract ristiques du PostScript la possibilit d utiliser et de manipuler du texte compos la possibilit de 1 2 CHAPITRE 1 INTRODUCTION r soudre des quations lin aires et l utilisation des types de donn es pour les points les courbes les images et les transformations de coordonn es La section 2 d crit les macros graph du point de vue de l utilisateur et pr sente plusieurs exemples
12. r e comme un seul et gros composant De mani re recenser les com posants d une telle figure l it ration for within ignore les chemin de d limitation ou setbounds dans ce cas Une fois que l it ration for within a trouv un l ment figure il existe de nombreux op rateurs pour l identifier et extraire l information pertinente L op rateur stroked lt expression primaire gt teste si l expression est une figure connue dont le premier composant est une ligne De fa on similaire les op rateurs filled et textual re tournent la valeur bool enne vraie true si le premier composant est un contour color ou un morceau de texte compos Les op rateurs clipped et bounded testent si l argument est une figure connue qui commence par un chemin de d tourage ou de setbounds Ceci est vrai si le premier l ment est d tour ou entour ou si la figure est entour e par un chemin de d tourage ou de setbounds Il existe galement de nombreux op rateurs d extraction qui testent le premier l ment d une figure Si p est une figure et si stroked p est vrai pathpart p est le chemin d crivant la ligne qui est esquiss e penpart 31 p est le stylo qui a t utilis dashpart p est le motif de pointill et la couleur est redpart p greenpart p bluepart p Si la ligne n est pas pointill e dashpart p renvoie une figure vide Les m mes op rateurs d extraction fonctionnent lorsque filled pest vrai except
13. syst me de coordonn es n est pas n cessairement lin aire La com mande setcoords permet un ou aux deux axes d tre gradu s de fa on logarithmique lt syst me de coordonn es gt setcoords lt type de coordonn es gt lt type de coordonn es gt lt type de coordonn es gt 1og linear log linear Un lt type de coordonn es gt n gatif inverse l axe x ou y sur la partie gauche ou inf rieure du graphe La figure 2 5 illustre le temps d ex cution de deux algorithmes de multi plication de matrices en utilisant setcoords log log pour sp cifier une chelle logarithmique sur les deux axes Le fichier de donn es matmul d donne les temps pour les deux algorithmes 20 007861 ordinary MM size seconds 30 022051 40 050391 60 15922 80 4031 120 1 53 1 60 32915 240 18 55 320 78 28 480 279 24 20 006611 Strassen size seconds 30 020820 40 049219 60 163281 80 3975 120 1 3125 160 3 04 240 9 95 320 22 17 480 72 60 Une ligne blanche dans un fichier de donn e termine un ensemble de donn es Des utilisations suppl mentaires de la commande gdraw permet d acc der des ensembles de donn es suppl mentaires en citant de nou veau le m me fichier Puisque chaque ligne contient une abscisse x et une ordonn e y les l ments de commentaire apr s le second champ sur une ligne sont ignor s En pla ant une commande setcoords entre deux ins tructions gd
14. t path p gdata timepop d s augment p sl newy scantokens S2 7 3 gdraw p La primitive de METAPOST scantokens interpr te une chaine de ca ract res comme si elle tait le contenu d un fichier source Cette primitive retrouve la valeur num rique du champ s2 La figure 3 1 montre comment utiliser augment pour lire de multiples colonnes de donn es et de tracer plusieurs courbes Les chemins p2 p3 p4 p5 donnent les totaux des colonnes 2 5 et les illustrations lab2 lab5 donnent les tiquettes correspondantes 16 CHAPITRE 2 UTILISATION DES MACROS GRAPH L expression picture unfill bbox lab j draw lab j ex cute les commandes de dessin et renvoie la figure r sultante unfill bbox lab j permet d obtenir un arri re plan de couleur blanche et draw lab j trace l tiquette sur le fond La commande gfill est semblable gdraw sauf qu elle n cessite un chemin ferm et remplit l in t rieur avec une couleur solide La couleur est noire moins qu une clause withcolor ne sp cifie une autre couleur Se reporter au manuel 5 pour les explications sur les boucles for les tableaux les couleurs et les op rateurs de construction de chemins tels que cycle et reverse defaultfont cmr7 draw begingraph 3in 2in glabel 1lft btex vbox hbox Esp rance hbox de vie etex OUT glabel bot btex P N B par habitant milliers de dollars etex OUT setcoords log linear
15. Les sections 3 et 4 discutent des packages auxi liaires pour la manipulation et la composition des nombres La section 5 pr sente quelques remarques en guise de conclusion L annexe A r sume les macros de trac de graphes et l annexe B d crit quelques ajouts r cents au langage METAPOST qui n ont t pr sent s nulle part Chapitre 2 Utilisation des macros graph Un fichier source METAPOST qui utilise les macros de graphe doit com mencer par input graph Cette commande permet de lire le fichier de macros graph mp et d finit les commandes de trac de graphes qui sont expliqu es dans la suite Le reste du fichier doit tre compos d une ou plusieurs instances de beginfig lt num ro de figure gt lt commandes de graphiques gt endfig suivies par end Les lt commandes de graphiques gt qui suivent suffisent 4 produire le graphe de la figure 2 1 a partir du fichier de donn es agepop91 d draw begingraph 3in 2in gdraw agepop91 d endgraph 2 0 1 Commandes l mentaires de trac de graphes Tous les graphes doivent commencer avec begingraph lt largeur gt lt hauteur gt et se terminer avec endgraph Ceci est d un point syntaxique une lt ex pression figure gt aussi cette instruction doit elle tre pr c d e par draw et suivie par un point virgule comme dans l exemple La lt largeur gt et la lt hauteur gt donnent les dimensions du graphe lui m me sans les tiquettes d
16. ame lt suffixe d tiquette gt lt liste d options gt trace un cadre autour du graphe ou trace la partie du cadre sp cifi e par le lt suffixe d tiquette gt grid lt suffixe d tiquette gt f z trace un quadrillage a travers le graphe a partir du c t sp cifi par le lt suffixe d tiquette gt et l tiquette en utilisant 27 le format caract re f l endroit indiqu par la valeur de coordonn es z Si f est une figure la commande indique l tiquette itick lt suffixe d tiquette gt f z quivaut la commande grid sauf que cette commande trace une graduation dirig e vers l int rieur du graphe otick lt suffixe d tiquette gt f z quivaut la commande grid sauf que cette commande trace une graduation dirig e vers l ext rieur du graphe A 0 8 Commandes diverses augment lt variable gt lt coordonn es gt ajoute les lt coordonn es gt au che min stock dans la lt variable gt format f x compose x suivant le format f et renvoie la figure qui en r sulte gdata f lt variable gt lt commandes gt lit le fichier nomm par la cha ne de caract res f et ex cute les lt commandes gt pour chaque ligne en utilisant la lt variable gt comme un tableau pour stocker les donn es init_numbers s m 2 t e procure cing figures pour les futures op ra tions format s correspond au signe m est un exemple de mantisse x suit la mantisse t est le signe de l exp
17. aw lead d autogrid otick bot otick rt endgraph L 0 5 60 0 4 Emissions en 0 3 Microgrammes en 40 z milliers de par m tre cube tonnes 0 2 d air ligne paisse 99 _ ligne fine 0 1 9 g 80 82 84 86 88 90 Ann e FIG 2 6 missions annuelles de plomb et niveau moyen enregistr aux tats Unis Le code METAPOST est indiqu au dessus du graphe L exemple de la figure 2 7 met en jeu format Sg y de fa on explicite de telle sorte que les lignes de quadrillage peuvent tre plac es aux coordonn es transform es Cela d finit la transformation new y y 75 In y et montre que cette fonction cro t pratiquement lin airement Cela revient un petit peu utiliser des coordonn es semi logarithmiques en y seulement sauf que y est remplac par y 75 In y 3Le manuel 5 explique comment vardef d finit des fonctions et comment mlog calcule les logarithmes 13 La figure 2 7 utilise la commande frame lt suffixe d tiquette gt lt liste d option gt pour tracer un cadre sp cial autour du graphe Dans ce cas le lt suffixe d tiquette gt est mis 11 ft pour ne tracer que les c t s inf rieur et gauche du cadre Les suffixes lrt ulft et urt tracent d autres combinaisons de deux c t s les suffixes 1ft rt top bot tracent un c t seulement et lt vide gt trace le cadre entier Par exemple frame dashed evenly trace
18. c de graphes Syst mes de coordonn es Cadres et quadrillages en clair Traitement de fichiers de donn es 3 Manipulation de grands nombres 4 Composition des nombres 5 Conclusion A R sum du package graph A 0 5 A 0 6 A 0 7 A 0 8 A 0 9 Gestion des graphes 8 4 2 das welt egg ae a Trac etietiguettesi eo trond eee sk lace Sowa Quadrillage graduations et cadres Commandes diverses 4 0 Le Arithm tique sur les cha nes num riques A 0 10 Variables internes et constantes B Nouvelles caract ristiques du langage B 0 11 Lecture et criture des fichiers B 0 12 Extraction d information dans les dessins B 0 13 Autres nouvelles caract ristiques R f rences iii 21 23 25 25 25 26 27 27 28 iv TABLE DES MATI RES Chapitre 1 Introduction METAPOST est un langage par lot orient graphique bas sur Me taFont de KNUTH mais produisant des sorties PostScript et poss dant de nombreuses caract ristiques pour l int gration de textes et de graphiques L auteur a essay de rendre ce papier aussi ind pendant que possible du manuel d utilisation 5 mais quelques connaissances du langage META POST permettront d appr cier toutes les fonctionnalit s graphiques Ce document se focalise sur les m canismes de production de certains graphi ques particuliers parce que
19. de RER 20 fuel 0 1900 1920 1940 1960 FIG 3 1 Un graphe de la production annuelle d nergie des Etats Unis et les commandes qui le cr ent 19 L op rateur Scvnum lt string gt renvoie la valeur num rique pour une cha ne de caract re si cela peut tre fait sans provoquer un d passement de capacit du syst me num rique virgule fixe de METAPOST Si la cha ne de caract res ne contient pas le caract re e il est plus efficace d utiliser la primitive scantokens lt string gt Les op rateurs pr c dents sont bas s sur un module de bas niveau qui ma nipule les nombres en format Mlog Un nombre x en format Mlog re pr sente Ta o w a Toute valeur entre 1 61 x 107 et 3 88 x 10 peut tre repr sent e de cette mani re Il existe une constante Mten telle que k Mten repr sente 10 pour tout entier k dans l intervalle 29 55 La principale raison de mentionner le format Mlog est qu il permet de manipuler les donn es d un graphe comme un chemin de METAPOST La fonction Mreadpath nom de fichier lit un fichier de donn es et renvoie un chemin dans lequel toutes les coordonn es sont dans le format Mlog Une variable interne Gpaths d termine si gdraw et gfill attendent des chemins dans le format Mlog Par exemple les instructions suivantes tracent le graphe avec les donn es du fichier agepop91 d les y tant divis es par un million interim Gpaths log gd
20. e ordinaire si le nombre est strictement inf rieur 1 000 sinon c est le format scientifique qui est automatiquement utilis Les formats g et G utilisent automatiquement la notation scientifique pour les nombres non nuls inf rieurs 0 001 21 22 CHAPITRE 4 COMPOSITION DES NOMBRES La macro format n cessite un ensemble de mod les pour d terminer quelle fonte utiliser comment positionner l exposant Les mod les sont normalement initialis s automatiquement mais il est possible de les fixer explicitement en passant cing arguments de type figure picture a la macro init_numbers Par exemple la d finition par d faut pour les utilisateurs de TEX est init_numbers btex Setex btex l etex btex times 10Setex btexS Setex btexS 2Setex Le premier argument dit comment composer un signe le second est un exemple de mantisse d un chiffre le troisi me indique le symbole a mettre apr s la mantisse en notation scientifique les suivants indiquent le signe de l exposant et l exemple d un exposant un chiffre La variable figure Fe_plus permet d indiquer le signe pour des nom bres positifs et Fe_base indique le symbole qui pr c de l exposant quand on compose une puissance de 10 L appel de init_numbers initialise Fe_plus une figure vide et construit Fe_plus partir de ses deuxi me et troisi me arguments Chapitre 5 Conclusion Le package graph facilite la g n ration de graphe
21. e polygonale par ces points gdrawarrow p r agit de la m me fa on que gdraw sauf que la commande ajoute une t te de fl che la fin du chemin gdrawdblarrow p r agit de la m me fa on que gdraw sauf que la com mande ajoute une t te de fl che au d but et la fin du chemin gfill p remplit un chemin ferm p ou lit les coordonn es dans le fichier nomm par la cha ne de caract res p et remplit la ligne polygonale r sul tante glabel lt suffixe d tiquette gt p lt localisation gt Si p n est pas un dessin p doit tre une cha ne de caract res Cette commande compose p en utili sant defaultfont puis place p proximit du lieu d insertion et le d cale de la quantit sp cifi e par lt suffixe d tiquette gt Le lieu d insertion lt localisation gt peut tre des coordonn es x et y un couple donnant x et y une valeur num rique indiquant le param tre t time sur le dernier chemin trac ou OUT pour poser une tiquette l ext rieur du graphe A 0 7 Quadrillage graduations et cadres auto lt x ou y gt produit les graduations x ou y par d faut autogrid lt commande d tiquetage d axe gt lt commande d tiquetage d axe gt trace les tiquettes par d faut des axes en utilisant les commandes sp cifi es pour les axes x et y Une lt commande d tiquetage d axe gt peut tre lt vide gt ou contenir itick otick ou grid suivi par un lt suffixe d tiquette gt fr
22. glabel 1lft btex vbox hbox Population hbox en millions etex OUT path p gdata ttimepop d for y 5 10 20 50 100 150 200 250 grid lft format Sg y newy y withcolor 85white endfor autogrid grid bot withcolor 85white frame llft endgraph 250 200 Ze 150 100 DA Population A en millions 50 Le 20 4 10 ea 5 71 1800 1850 1900 1950 2000 FIG 2 7 Population des tats Unis en millions en fonction du temps re exprim e suivant p 75 Inp Le code METAPOST montr au dessus du graphe fait r f rence au fichier de donn e ttimepop d qui contient les couples de valeurs ann e p 75 In p 2 0 4 Traitement de fichiers de donn es L outil le plus g n ral pour traiter les fichiers de donn es est la com mande gdata gdata lt expression cha ne de caract res gt lt variable gt lt commandes gt La commande gdat a requiert un nom de fichier une variable v et une liste de commandes ex cuter pour chaque ligne du fichier de donn es Les commandes sont ex cut es avec l indice i fix au num ro de ligne d entr e et les cha nes de caract res v1 v2 v3 fix es pour les champs d entr e de la ligne courante L utilisation de la commande glabel l int rieur de gdata permet d obtenir un nuage de points comme le montre la figure 2 8 Le fichier de 15 donn e count ries d commence par 20 910 75 7 US 1 831 66 7 Alg dans lequel le dernier champ de chaque li
23. gne indique l tiquette afficher L utilisation de defaultfont dans la premi re ligne d entr e s lec tionne une petite fonte pour ces tiquettes Sans ces tiquettes aucune com mande gdata ne serait n cessaire Remplacer la commande gdata par gdraw countries d plot btex circhetex aurait chang les abr viations de pays par des cercles Les deux commandes gdraw et gdata ignorent un initial et optionel de chaque ligne analysent les champs s par s par des espaces et s arr tent s ils rencontrent une ligne sans aucun champ de donn es Le signe est interpr t par METAPOST comme un commentaire de sorte que des don n es num riques peuvent tre plac es au d but d un fichier source META POST Il est souvent utile de construire une ou plusieurs courbes lorsqu on lit un fichier de donn es avec gdata La commande augment est pr vue pour ca augment lt variable chemin gt lt coordonn es gt Si la lt variable chemin gt n a pas de valeur connue elle devient un chemin de longueur nulle pour les coordonn es choisies autrement un segment reliant les coordonn es est ajout au chemin Les lt coordonn es gt peuvent tre une expression de type paire ou toute combinaison de chaines de ca ract res et de variables de type num rique comme l explique le d but de paragraphe 2 0 2 Si un fichier timepop d donne des paires t p augment peut tre uti lis comme ceci pour tracer newy p en fonction de
24. les quatre c t s en pointill s Le cadre complet est trac par d faut lorsqu il n y a pas de commande frame explicite Pour tiqueter un axe comme le fait autogrid mais avec des ti quettes transform es d une certaine mani re il faut utiliser auto ouauto y de mani re positionner les marques de graduation ou de quadrillage Ces macros produisent des listes avec des virgules comme s parateur utiliser dans les boucles for N importe quelle valeur x ou y dans ces listes qui ne peuvent tre repr sent es avec pr cision dans le syst me de nombre virgule fixe de METRPOST sont pass es comme des cha nes de caract res string Un package de macros standard qui est charg par l interm diaire de input sarith d finit les op rateurs arithm tiques qui fonctionnent sur des nombres ou des cha nes de caract res Les op rateurs binaires Sadd Ssub Smul et Sdi v r alisent addition soustraction multiplication et division Une des applications possibles est la remise l chelle des donn es La figure 2 4 utilise un fichier sp cial de donn es agepopm d dont les valeurs y sont divis es par un million Ceci peut tre vit en rempla ant gdraw agepopm d par gdraw agepop91 d for u auto y otick lft format Sg u Sdiv le6 u endfor autogrid otick bot 14 CHAPITRE 2 UTILISATION DES MACROS GRAPH vardef newy expr y 256 75 y mlog y enddef draw begingraph 3in 2in
25. og Mten le format Mlog pour 10 0 Annexe B Nouvelles caract ristiques du langage Les macros graph mp et les routines arithm tiques dans les fichiers marith mpet sarith mp utilisent diff rentes caract ristiques du langage qui ont t introduites dans la version 0 60 de METAPOST Elles sont r su m es ici parce qu elles ne sont pas int gr es dans la documentation exis tante 5 6 Est galement nouvelle la macro picture lt commandes de trac gt qui a t utilis e dans le paragraphe 2 0 4 pour trouver la figure produite par une s quence de commandes de trac B 0 11 Lecture et criture des fichiers Un nouvel op rateur readfrom lt nom de fichier gt renvoie une cha ne de caract res donnant la ligne suivante du fichier cit Le lt nom de fichier gt peut tre n importe quelle expression primaire de type cha ne de caract res Si le fichier est termin ou ne peut pas tre lu le r sultat est une cha ne de caract res consistant en un simple caract re nul ou vide Le package de macro plain pr charg introduit le nom EOF pour cette cha ne de caract res Apr s que readfrom a renvoy EOF de nouvelles lectures partir du m me fichier provoque une relecture partir du d but du fichier La commande oppos e readfrom est la commande write lt expression cha ne de caract res gt to lt nom de fichier gt 29 30 ANNEXE B NOUVELLES CARACTERISTIQUES DU LANGAGE Cette commande cri
26. osant e Mreadpath f lit un chemin pour le fichier de donn es nomm par le for mat f et le renvoie en format Mlog A 0 9 Arithm tique sur les cha nes num riques Il est n cessaire d utiliser l instruction input sarith avant d utiliser les macros suivantes Sabs x calcule x et renvoie une cha ne num rique x Sadd y calcule x y et renvoie une cha ne num rique Scvnum x renvoie la valeur num rique pour la cha ne de caract re x x Sdiv y calcule x y et renvoie une cha ne num rique x Sleq y renvoie le r sultat bool en de la comparaison x lt y x Smul y calcule x x y et renvoie une cha ne num rique x Sneq y renvoie le r sultat bool en de la comparaison x y x Ssub y calcule x y et renvoie une cha ne num rique 28 ANNEXE A RESUME DU PACKAGE GRAPH A 0 10 Variables internes et constantes Autoformat format des cha nes de caract res utilis par autogrid Par d faut g Fe_base ce qui pr c de l exposant lorsqu on compose une puissance de dix Fe_plus repr sente le signe initial pour les exposants positifs Gmarks nombre minimum de marques de graduations par pour auto et autogrid Par d faut 4 Gminilog rapport minimum entre l espace le plus grand et le plus petit pour une chelle logarithmique pour auto et autogrid Par d faut 3 0 Gpaths code pour les coordonn es utilis dans les chemins gdrawet gfill linear dans la forme standard log pour le format Ml
27. pas suffisamment souple les commandes d ti quetage des axes produisent des lignes de quadrillage ou des marques de graduations un par un La syntaxe est lt grille ou marque gt lt suffixe d tiquette gt lt format d tiquette gt lt expres sion cha ne ou num rique gt lt liste d option gt o lt grille ou marque gt et lt suffixe d tiquette gt sont comme dans l ins truction autogrid et le lt format d tiquette gt est soit un format de chaine comme g soit une figure contenant l tiquette num rique compos e La commande d tiquette d axe utilise la macro format lt format chaine gt lt expression chaine ou num rique gt pour composer des tiquettes num riques Tous les d tails apparaissent dans la section 4 mais lorsque le lt format chaine gt est Sg il utilise la notation d cimale moins que le nombre soit suffisamment grand ou petit pour n cessiter la notation scientifique 12 CHAPITRE 2 UTILISATION DES MACROS GRAPH draw begingraph 6 5cm 4 5cm setrange 80 0 90 whatever glabel bot btex Ann e etex OUT glabel 1ft btex vbox hbox Emissions en hbox milliers de hbox tonnes hbox ligne paisse etex OUT gdraw lead d withpen pencircle scaled 1 5pt autogrid otick lft setcoords linear linear setrange 80 0 90 whatever glabel rt btex vbox hbox Microgrammes hbox par m tre hbox cube d air hbox ligne fine etex OUT gdr
28. ption withpen on obtient la superposi tion de la ligne sur les symboles de tra age Les utilisateurs de Troff doivent remplacer btex bullet etex par btex bu etex 4x 108 was oe LR 3x106 nm 2x106 A 0 20 40 60 80 FIG 2 2 La distribution d ge en 1991 dessin e avec des points noirs Les commandes glabel et gdot label ajoutent des tiquettes sur le graphe La syntaxe pour glabel est glabel lt suffixe d tiquette gt lt expression cha ne ou dessin gt lt position gt lt liste d options gt o la lt position gt identifie la localisation d une tiquette et le lt suffixe d tiquette gt pr cise le d calage de l tiquette relative cette position La com mande gdot label est identique la pr c dente except le fait que la posi tion est marqu e par un point Un lt suffixe label gt s crit comme en plain METAPOST Il peut tre lt vide gt pour centrer l tiquette la position lft rt top bot d calent l tiquette horizontalement ou verticalement et ulft urt 1l1ft lrt indiquent les d calages diagonaux La lt position gt peut tre un couple de coordonn es du graphe un num ro de n ud du dernier chemin trac avec gdraw ou la position sp ciale OUT Ainsi gdotlabel top btex 50 0 etex 50 0 marquera un point aux coordonn es 50 0 et placera le texte compos 50 0 au dessus de ce dernier De fa on similaire glabel ulft Knot 3 3
29. que dashpart p ne pr sente aucun int r t dans ce cas Pour les l ments textes textual p est vrai textpart p renvoie le texte qui a t compos fontpart p indique la fonte qui a t utilis e et xpart p ypart p xxpart p xypart p yxpart p yypart p indiquent de combien le texte a t d cal ou tourn ainsi que le facteur d chelle Les op rateurs redpart p greenpart petbluepart p fonctionnent ga lement sur les l ments textes Lorsque clipped poubounded pest vrai pathpart indique le che min de d tourage ou le chemin setbounds et les autres op rateurs d ex traction n ont pas d int r t De telles extractions sans int r ts ne produisent pas d erreurs elles retournent seulement des valeurs nulles le chemin trivial 0 0 pour pathpart nullpen pour penpart une figure vide pour dashpart z ro pour redpart greenpart bluepart et la cha ne de caract res vide pour textpart ou fontpart Un dernier op rateur pour extraire des informations d une figure est length lt figure primaire gt Cette commande retourne le nombre d l ments qu une it ration for within devrait trouver B 0 13 Autres nouvelles caract ristiques Les packages marith mp et sarith mp utilisent des nombres sup rieurs 4096 Puisque de telles valeurs peuvent causer des probl mes d o verflow de d passement de capacit dans le processus de r solution des quations lin aires dans METAPOST et les algorithmes d ajustement
30. raw Mreadpath agepop91 d shifted 0 6 Mten 20 CHAPITRE 3 MANIPULATION DE GRANDS NOMBRES Chapitre 4 Composition des nombres Le package graph a besoin de calculer les tiquettes d axes et ensuite de les composer La macro format lt expression chaine de caract res gt lt num rique ou expression chaine de caract res gt r alise cette t che Il faut d abord utiliser l instruction input graph ou input format pour charger le fichier de macro La macro requiert un ar gument de format chaine de caract res et un nombre et renvoie une figure contenant le r sultat compos Ainsi format Sg 2 2 produit 4 et format 3g 6 022e23 produit 6 02 x 1078 Un format chaine de caract res consiste en un caract re initial optionnel ne contenant pas le signe un signe un param tre optionnel de pr cision not p une des lettres de conversion e f g G un caract re final optionnel 6 Les caract res initial et final sont compos s dans la fonte par d faut g n ralement cmr 10 et le nombre compos est plac entre eux deux Pour les formats e et g la pr cision p est le nombre de chiffres significatifs autoris s apr s arrondi pour les formats et G le nombre est arrondi au multiple de 107 le plus proche Si la pr cision n est pas indiqu e p 3 est pris par d faut Le format e utilise toujours la notation scientifique et le format f utilise la notation d cimal
31. raw on peut tracer deux fonctions dans deux syst mes de coor donn es diff rents comme le montre la figure 2 6 Chaque fois qu une ins truction setcoords est utilis e l interpr teur METAPOST examine ce qui a t trac s lectionne la gamme des valeurs de coordonn es x et y et met a l chelle tout ce qui est n cessaire Tout ce qui est trac apr s l est fait dans un nouveau syst me de coordonn es qui n a pas besoin d avoir quoique ce soit en commun avec le pr c dent moins que des commandes setrange imposent une gamme de valeurs similaire Par exemple les deux com mandes setrange forcent les deux syst mes de coordonn es avoir les x entre 80 et 90 et les y gt 0 Lorsqu on utilise de multiples syst mes de coordonn es il faut sp cifier o sont les tiquettes d axe Par d faut les marques d axe sont situ es gauche et sous le cadre du graphique lorsque la commande endgraph est interpr t e La figure 2 6 utilise la commande autogrid otick 1ft pour tiqueter le c t gauche du graphe avec l ordonn e y Cette com mande agit avant la commande set coords 10 CHAPITRE 2 UTILISATION DES MACROS GRAPH En pla ant une commande set coords entre deux instructions gdraw on peut tracer deux fonctions dans deux syst mes de coordonn es diff rents comme le montre la figure 2 6 Chaque fois qu une instruction set coords est utilis e l interpr teur METAPOST examine ce qui a t trac s lec
32. remier ar gument de autogrid indique comment tiqueter l axe x et le second ar gument le fait pour l axe y Un argument lt vide gt supprime l tiquetage de l axe Autrement le lt suffixe d tiquette gt indique de quel cot est pla c e l tiquette num rique Il faut faire attention dans l utilisation de top ou bot pour l axe des x et avec 1ft et rt pour l axe des y Il faut utiliser otick pour avoir des marques de graduation l ext rieur itick pour les mettre l int rieur et grid pour produire un quadrillage La lt liste d options gt indique comment dessiner les marques de graduation ou les lignes de quadrillage Les lignes de quadrillage paraissent un peu forte aussi c est un bonne id e d ajouter une option withcolor pour les griser l g rement de mani re ne pas trop charger le graphique 11 draw begingraph 2 3in 2in setcoords log log glabel 1lft btex Secondes etex OUT glabel bot btex Taille des matrices etex OUT gdraw matmul d dashed evenly glabel ulft btex Standard etex 8 gdraw matmul d glabel lrt btex Strassen etex 7 endgraph 100 Standard ca Strassen Secondes 0 1 0 01 20 50 100 200 500 Taille de matrice FIG 2 5 Temps d ex cution de deux algorithmes de multiplication de ma trices et code METAPOST correspondant 2 0 3 Cadres et quadrillages en clair Lorsque autogrid n est
33. s en langage META POST Les b n fices premiers sont la puissance de METAPOST et sa capa cit interagir avec TEX ou troff pour composer les tiquettes Les tiquettes ainsi compos es peuvent tre stock es dans des variables figure et manipu l es de diff rentes mani res On peut ainsi mesurer la bounding box et fixer un fond blanc par exemple On a vu comment cr er des zones ombr es et contr ler l paisseur de lignes leur couleur ainsi que le style des lignes pointill es De nombreuses autres variations sont possibles Le langage complet METAPOST 5 procure beaucoup d autres caract ristiques potentiellement utiles Il poss de suffi samment de puissance de calcul pour tre utile la g n ration et au traite ment des donn es 23 24 CHAPITRE 5 CONCLUSION Annexe A R sum du package graph Dans les descriptions qui suivent les lettres italiques telles que w et h d notent des expressions de type param tre et les mots entre crochets d notent d autres l ments syntaxiques Sans autre sp cification les expressions de type param tre peuvent tre soit des nombres ou des chaines de caract res Une lt liste d options gt est une liste d options de dessin telles quewithcolor 5white ou dashed evenly un lt suffixe d tiquette gt est l un des l ments parmi 1ft rt top alterar t VEC Are A 0 5 Gestion des graphes begingraph w h commence un nouveau graphe dont la largeur et la hau
34. t une ligne de texte dans le fichier de sortie sp ci fi en ouvrant d abord le fichier si n cessaire Tous ces fichiers sont ferm s automatiquement quand le programme se termine Ils peuvent tre ferm s explicitement en utilisant EOF comme lt expression chaine de caract res gt Le seul moyen pour savoir si la commande write a t r alis e avec succ s est de fermer le fichier et d employer readfrom pour lire son contenu B 0 12 Extraction d information dans les dessins Les images pictures METAPOST sont compos es de lignes de contours color s de morceaux de textes compos s de chemins de d limitation ou de d tourage et de chemins setbounds Un chemin setbounds donne une bounding box artificielle comme le n cessite la sortie TEX Une figure peut poss der plusieurs composants de chaque type Il est possible d y ac c der au moyen d une it ration de la forme for lt token symbolique gt within lt expression figure gt lt texte de boucle gt endfor Le lt texte de boucle gt peut tre n importe quel texte quilibr entre for et endfor Le lt token symbolique gt est une variable de boucle qui scrute les composants de la figure dans l ordre o ils ont t trac s Le composant pour un chemin de d limitation ou setbounds comprend tout ce que le chemin inclut Ainsi si une simple d limitation ou un chemin setbounds s applique tout ce qui est dans la figure la figure enti re peut tre consi d
35. teur sont donn es par les param tres w et h endgraph termine un graphe et renvoie la figure courante setcoords tz ty met en place un nouveau syst me de coordonn es sp ci fi par les indicateurs tz et ty Les valeurs de ces indicateurs sont linear lin aire et 1og logarithmique set range lt coordonn es gt lt coordonn es gt fixe les limites inf rieures et sup rieures pour le syst me de coordonn es courant Chaque lt coordon n es gt peut tre une simple expression de type paire ou deux valeurs nu m riques ou une expression de type cha ne de caract res A 0 6 Trac et tiquettes Toutes les commandes de trac et d tiquetage peuvent tre suivies par une lt liste d options gt c t des options usuelles de trac de METAPOST la liste peut contenir une clause plot de type figure pour tracer un dessin chaque point 25 26 ANNEXE A RESUME DU PACKAGE GRAPH Les commandes de trac et d tiquetage sont troitement reli es un ensemble de commandes de plain METAPOST dont le nom est similaire Les commandes gdrawarrow et gdrawdblarow sont incluses pour main tenir cette similarit gdot label lt suffixe d tiquette gt p lt localisation gt est identique g1abel sauf que cette commande ajoute aussi un point l endroit de l tiquette gdraw p trace le chemin p ou si p est une cha ne de caract res lit les couples de coordonn es dans le fichier p et trace une lign
Download Pdf Manuals
Related Search
Related Contents
Wiley Second Life: The Official Guide Gb User`s Manual Of Programmable Logic Lrd Relays Acco Quartet 4' x 3' Dynamic Assembly Manual Prolink Hurricane-5305G Manual Recorders: Honeywell Multitrend Plus/Minitrend User Manual Emporia CLICK 2.2" 110g Black Copyright © All rights reserved.
Failed to retrieve file