Home
Tracer des graphes avec METAPOST
Contents
1. Tracer des graphes avec METAPOST John D HOBBY Bell Labs Lucent Technologi Murray Hill NJ 079 Traduction Pierre FOURNIER pierre fournier unilim fr Jean C me CHARPENTIER Jean Come Charpentier wanadoo fr Table des mati res 1 Introduction 2 Utilisation des macros graph 2 1 Commandes l mentaires de trac de graphes 2 2 Syst mes de coordonn es 2 3 Cadres et quadrillages en clair 2 4 Traitement de fichiers de donn es 3 Manipulation de grands nombres 4 Composition des nombres 5 Conclusion A R sum du package graph A1 Gestion des graphes sacre iaren a da ee ae A2 Trac et tiquettes A3 Quadrillage graduations et cadres AA Commandes diverses A5 Arithm tique sur les cha nes num riques A 6 Variables internes et constantes B Nouvelles caract ristiques du langage B 1 Lecture et criture des fichiers B 2 Extraction d information dans les dessins B 3 Autres nouvelles caract ristiques R f rences R sum 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 d
2. du lieu d insertion et le d cale de la quan tit 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 3 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 a xe 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 it ick otick ou grid suivi par un lt suffixe d tiquette gt frame lt suffixe d tiquette gt lt liste d options gt trace un cadre autour du gra phe 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 par tir du c t sp cifi par le lt suffixe d tiquette gt et l tiquette en utilisant le for mat 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
3. glabel lft btex vbox hbox Quadrillions hbox de BTU etex OUT path pl numeric gdata energy d S t 0 augment p1 1 0 for j 2 upto 5 t t scantokens j augment p j 1 t endfor picture lab lab2 btex charbon etex lab3 btex fuel etex lab4 btex gaz naturel etex lab5 btex hydo lectricit etex for j 5 downto 2 gfill pljl reverse plj 1 cycle withcolor 16j white glabel 1lft picture unfill bbox lab j draw lab j 7 length p j endfor endgraph 60 hydro lectricit 40 gaz naturel 1015 de BTU 20 fuel 0 1900 1920 1940 1960 FIG 9 Un graphe de la production annuelle d nergie des Etats Unis et les commandes qui le cr ent 19 L op rateur unaire Sabs lt string gt renvoie une chaine de caract res repr sentant la valeur absolue Les op rateurs Sleq et Sneq r alisent des comparaisons num riques sur des cha nes de ca ract res et renvoient un r sultat bool en 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 chaine 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 mani pule l
4. sance 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 N g n ration automatique des graduations et de l tiquetage des axes et ou des quadrillages systemes de coordonn es multiples chelles lin aires et logarithmiques possibilit de manipuler des nombres en dehors des gammes habituelles symboles de tra age arbitraires N A O1 FP W 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 pos sibilit d utiliser et de manipuler du texte compos la possibilit de 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 Les sections 3 et 4 discutent des packages auxiliaires pour la manipu lation 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
5. 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 gdraw lead d autogrid otick bot otick rt endgraph 0 5 60 0 4 Emissions en milliers de 40 0 3 Microgrammes par m tre cube tonnes 0 2 d air ligne paisse 99 _ ligne fine 0 1 0 0 80 82 84 86 88 90 Ann e FIG 6 Emissions annuelles de plomb et niveau moyen enregistr aux Etats Unis Le code METAPOST est indiqu au dessus du graphe 2 3 Cadres et quadrillages en clair Lorsque autogrid n est pas suffisamment souple les commandes d ti quetage des axes produisent des lignes de quadrillage ou des marques de gra duations un par un La syntaxe est lt grille ou marque gt lt suffixe d tiquette gt lt format d tiquette gt lt expression chaine 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 instruc tion autogrid et le lt format d tiquette gt est soit un format de chaine comme Sg 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 14 pour composer des tiquettes num riques Tous les d tails apparaissent dans la section 4 mais l
6. 8 Un nuage de points et les commandes qui le cr ent 3 Manipulation de grands nombres METAPOST h rite du syst me de num ration virgule fixe du logiciel META FONT de KNUTH 8 Les nombres sont exprim s comme multiples de 271 et doivent avoir une valeur absolue inf rieure 32768 KNUTH a choisi ce syst me parce qu il est parfaitement adapt la d finition des fontes et ga rantissait 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 pa pier 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 18 Un moyen simple pour manipuler des grands nombres est d inclure la ligne input sarith et d utiliser les op rateurs binaires Sadd Ssub Smul et Sdiv a 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 draw begingraph 3in 2in draw begingraph 3in 2in
7. crit quelques ajouts r cents au langage METAPOST qui n ont t pr sent s nulle part 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 produire le graphe de la figure 1 partir du fichier de donn es agepop91 4 draw begingraph 3in 2in gdraw agepop91 d endgraph 4x 106 4 3x 10 2x106 4 10 0 20 40 60 80 FIG 1 Graphique de la distribution d ge en 1991 aux Etats Unis 2 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 Cela est d un point de vue syntaxique une lt expression 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 axe La commande gdraw lt expression gt lt liste d options gt dessine un graphe au trai
8. 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 Les commandes de trac et d tiquetage sont troitement reli es un en semble de commandes de plain METAPOST dont le nom est similaire Les commandes gdrawarrow et gdrawdblarow sont incluses pour maintenir cette similarit gdot label lt suffixe d tiquette gt p lt localisation gt est identique glabel sauf que cette commande ajoute aussi un point l endroit de l tiquette gdraw p trace le chemin p ou si p est une chaine de caract res lit les couples de coordonn es dans le fichier p et trace une ligne 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 commande ajoute une t te de fl che au d but et la fin du chemin 23 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 sultante glabel lt suffixe d tiquette gt p lt localisation gt Si p n est pas un dessin p doit tre une chaine de caract res Cette commande compose p en utilisant de fault font puis place p proximit
9. 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 A4 Commandes diverses augment lt variable gt lt coordonn es gt ajoute les lt coordonn es gt au chemin 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 x t e procure cing figures pour les futures op rations format s correspond au signe m est un exemple de mantisse x suit la mantisse t est le signe de l exposant e Mreadpath f lit un chemin pour le fichier de donn es nomm par le format f et le renvoie en format Mlog 24 A 5 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 y et renvoie une cha ne num rique x Sneq y renvoi
10. 5 procure beaucoup d autres caract ristiques potentiellement utiles Il poss de aussi suffisamment de puissance de calcul pour tre utile la g n ration et au traitement des donn es 22 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 cha nes de caract res Une lt liste d options gt est une liste d options de dessin telles que withcolor 5white ou dashed evenly un lt suffixe d tiquette gt est l un des l ments parmi 1ft rt top ult urt LI E LEE A 1 Gestion des graphes begingraph w h commence un nouveau graphe dont la largeur et la hauteur sont donn es par les param tres w et h endgraph termine un graphe et renvoie la figure courante setcoords t ty met en place un nouveau syst me de coordonn es sp cifi par les indicateurs tz et ty Les valeurs de ces indicateurs sont 1inear lin aire et log logarithmique setrange lt coordonn es gt lt coordonn es gt fixe les limites inf rieures et su p rieures pour le syst me de coordonn es courant Chaque lt coordonn es gt peut tre une simple expression de type paire ou deux valeurs num riques ou une expression de type cha ne de caract res A 2 Trac
11. 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 arrondissant de fa on appropri e R f rences 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 edition 1990 2 William S CLEVELAND The Elements of Graphing Data Hobart Press Sum mit New Jersey 1985 3 William S CLEVELAND A model for studying display methods of statis tical graphics with discussion Journal of Computational and Statistical Graphics 3 a paraitre 4 William S CLEVELAND Visualizing Data Hobart Press Summit New Jer sey 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 Jer sey April 1992 Peut tre obtenu par courrier send 162 from re search cstr netlib research att com Version fran aise Un manuel d utilisation pour METAPOST ce cahier 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 2 edit
12. de format cha ne de caract res et un nombre et renvoie une figure contenant le r sultat compos Ainsi format g 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 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 cmr10 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 f 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 no tation d cimale 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 La macro format n cessite un ensemble de mod les pour d terminer quel le fonte utiliser comment positionner l exposant Les mod les sont normale ment initialis s automatiquement mais il est possible de les fixer explicitement en passant cinq arguments de type figu
13. 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 ou la lt position gt identifie la localisation d une tiquette et le lt suffixe d ti quette 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 position est marqu e par un point Un lt suffixe label gt s crit comme en plain META POST 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 11ft lrt indiquent les d calages diagonaux La lt position gt peut tre un couple de coor donn 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 lt 50 0 gt au dessus de ce dernier De fa on similaire glabel ulft Knot 3 3 composera la chaine Knot 3 et la placera au dessus et 4 gauche du n ud 3 du dernier chemin obtenu par la commande garaw Les utilisateurs de Troff doivent remplacer bt ex bullet etex par btex bu etex La lt position gt OUT place l tiquette relativement l ensemble du graphe Par exemple remplacer gdraw agepop91 d par glabel 1ft bt
14. des listes avec des virgules comme s parateur a 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 METAPOST 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 Sdiv r alisent addition soustraction multiplication et division Une des applications possibles est la remise l chelle des donn es La fi gure 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 age popm d par 3Le manuel 5 explique comment vardef d finit des fonctions et comment mlog calcule les logarithmes 15 vardef newy expr y 256 75 y mlog y enddef draw begingraph 3in 2in glabel lft 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 150 100 Population A en millions 50 P 20 4 10 ae 5 yz T 1800 1850 1900 1950 2000 FIG 7 Population d
15. graphe La figure 5 illustre le temps d ex cution de deux algorithmes de multiplica tion de matrices en utilisant set coords 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 11 20 007861 ordinary MM size seconds 30 022051 40 050391 60 15922 80 4031 20 12 58 160 3 915 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 22417 480 72 60 Une ligne blanche dans un fichier de donn e termine un ensemble de don n es Des utilisations suppl mentaires de la commande gdraw permet d ac c der des ensembles de donn es suppl mentaires en citant de nouveau 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 instructions gdraw on peut tracer deux fonctions dans deux syst mes de coordonn es diff rents comme le montre la figure 6 Chaque fois qu une instruction set coords 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 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 q
16. 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 Cette commande crit une ligne de texte dans le fichier de sortie sp cifi en ouvrant d abord le fichier si n cessaire Tous ces fichiers sont ferm s auto matiquement quand le programme se termine Ils peuvent tre ferm s expli citement en utilisant EOF comme lt expression cha ne 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 2 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 Unchemin setbounds donne une boun ding box artificielle comme le n cessite la sor
17. 0 000 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 paisseurs de lignes les tiquettes et les symboles de trac ne sont pas remis l chelle La commande setrange 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 o 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 lt coordonn es gt donne min Ymin et le second indique max Ymax Les lignes x Lmin Lmax Y Ymin et Y Ymax d finissent un cadre rectangulaire autour du graphe dans les figures 1 a 3 Par exemple l ajout de l instruction setrange origin whatever whatever au fichier source de la figure 3 produit la figure 4 Le premier 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 es N importe quelle variable inconnue peut aussi bien fonctionner mais whatever est la repr sentation standard en METAPOST pour une valeur anonyme inconnue 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
18. ang 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 donn es num riques peuvent tre plac es au d but d un fichier source METAPOST 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 a 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 caract res et de variables de type num rique comme l explique le d but de paragraphe 2 2 Si un fichier t imepop d donne des paires t p augment peut tre utilis comme ceci pour tracer newy p en fonction de t path p gdata timepop d s augment p sl newy scantokens s2 gdraw p La primitive de METAPOST scantokens interpr te une cha ne de caract res comme si elle tait le contenu d un fichier source Cette primitive retrouve la valeur num rique du champ s2 La figure 9 montre comment utiliser augme
19. ar 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 pre mier l ment d une figure Si p est une figure et si stroked p est vrai path part p est le chemin d crivant la ligne qui est esquiss e penpart 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 que dashpart p ne pr sente aucun int r t dans ce cas Pour les l ments textes textual pest vrai textpart p renvoie le texte qui a t com pos 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 p et bluepart p fonctionnent galement sur les l ments textes Lorsque clipped poubounded pest vrai pathpart indique le chemin de d tourage ou le chemin setbounds et les autres op rateurs d extraction n ont pas d int r t De telles extractions sans int r ts ne produisent pas d er reurs elles retournent seulement des valeurs nulles le chemin trivial 0 0
20. 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 gridliticklotick Le lt suffixe d tiquette gt doit tre 1ft rt top bot Le premier argument de autogrid indique comment tiqueter l axe x et le second argument 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 plac 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 ot ick pour avoir des marques de gra duation l ext rieur it ick pour les mettre l int rieur et gr id 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 13 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
21. e le r sultat bool en de la comparaison x y x Ssub y calcule x y et renvoie une cha ne num rique A 6 Variables internes et constantes Autoformat format des cha nes de caract res utilis par autogrid Par d faut Sg 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 au togrid 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 Mlog Mten le format Mlog pour 10 0 25 B Nouvelles caract ristiques du langage Les macros graph mp et les routines arithm tiques dans les fichiers ma rith mp et sarith mp utilisent diff rentes caract ristiques du langage qui ont t introduites dans la version 0 60 de METAPOST Elles sont r sum es ici parce qu elles ne sont pas int gr es dans la documentation existante 5 6 Est galement nouvelle la macro picture lt commandes de trac gt qui a t utilis e dans le paragraphe 2 4 pour trouver la figure produite par une s quence de commandes de trac B 1 Lecture et criture des fichiers Un nouvel op rateur readfrom lt nom de fichier gt renvoie
22. es tats Unis en millions en fonction du temps re exprim e suivant p 75 In p Le code METAPOST montr au dessus du graphe fait r f rence au fichier de donn e ttimepop d qui contient les couples de va leurs ann e p 75 In p gdraw agepop91 d for u auto y otick lft format Sg Sdiv le6 u endfor autogrid otick bot 2 4 Traitement de fichiers de donn es L outil le plus g n ral pour traiter les fichiers de donn es est la commande 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 com mandes 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 16 L utilisation de la commande glabel l int rieur de gdata permet d ob tenir un nuage de points comme le montre la figure 8 Le fichier de donn e countries d commence par 20 910 75 7 US 1 831 66 7 Alg dans lequel le dernier champ de chaque ligne indique l tiquette afficher L utilisation de default font dans la premi re ligne d entr e s lectionne une petite fonte pour ces tiquettes Sans ces tiquettes aucune commande gdata ne serait n cessaire Remplacer la commande gdata par gdraw countries d plot btex circhetex aurait ch
23. es nombres en format Mlog gt Un nombre x en format Mlog repr sente ee o TE g Toute valeur entre 1 61 x 107 et 3 88 x 105 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 fonc tion Mreadpath nom de fichier lit un fichier de donn es et renvoie un chemin dans lequel toutes les co ordonn 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 age pop91 d les y tant divis es par un million interim Gpaths log gdraw Mreadpath agepop91 d shifted 0 6 Mten 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 cha ne de caract res gt lt num rique ou expression cha ne de caract res gt 4L 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 20 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 argument
24. ex vbox hbox Population hbox en millions etex OUT glabel bot btex Ag n ann es etex OUT gdraw apepopm d dans le fichier source de la figure 1 produit la figure 3 Ceci am liore le graphe en ajoutant des noms d axes et en utilisant un nouveau fichier de don n 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 trans formations 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 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 ATEX trouveront sans doute plus naturel de recourir l environnement tabular 9 Les utilisateurs de troff peuvent utiliser btex nf Population en millions etex 2 2 Syst mes de coordonn es Les macros graphiques du package graph d calent et remettent automa tiquement 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 46
25. ion 1990 8 D E KNUTH METAFONT the Program Addison Wesley Reading Massa chusets 1986 Volume D of Computers and typesetting 9 Leslie LAMPORT TEX A Document Preparation System Addison Wesley Reading Massachusets 1986 28 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 29
26. nt pour lire de multiples co lonnes de donn es et de tracer plusieurs courbes Les chemins p2 p3 p4 p5 donnent les totaux des colonnes 2 5 et les illustrations 1ab2 1ab5 donnent les tiquettes correspondantes 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 17 gdraw sauf qu elle n cessite un chemin ferm et remplit l int 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 1ft btex vbox hbox Esp rance hbox de vie etex OUT glabel bot btex P N B par habitant milliers de dol lars etex OUT setcoords log linear gdata countries d s glabel s3 sl s2 endgraph 80 Gre Spn ag dS Por Tai C sri oaae RES 70 Chn SKo USS Phial gt PMor Irpga PX Esp rance oe de vie 60 pi on ar He he Sud ga 50 P Nig Moz 0 1 0 2 0 5 1 2 5 10 20 P N B par habitant milliers de dollars Fic
27. orsque le lt format chaine gt est g il utilise la notation d cimale 4 moins que le nombre soit suffisamment grand ou petit pour n ces siter la notation scientifique L exemple de la figure 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 seule ment sauf que y est remplac par y 75 ln y La figure 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 11f t pour ne tracer que les c t s inf rieur et gauche du cadre Les suffixes 1rt 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 les quatre c t s en pointill s Le cadre complet est trac par d faut lors qu il n y a pas de commande frame explicite Pour tiqueter un axe comme le fait autogrid mais avec des tiquettes transform es d une certaine mani re il faut utiliser auto ou auto y de mani re positionner les marques de graduation ou de quadrillage Ces macros produisent
28. parce que le langage METAPOST utilise des nombres en virgule fixe qui doivent tre inf rieurs a 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 coordonn es soient d une amplitude raisonnable gt 2 11 Si l on souhaite r ellement des abs cisses 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 acceptable tant que l exposant est introduit par la lettre e 10 draw begingraph 3in 2in glabel 1ft btex vbox hbox Population hbox en millions etex OUT glabel bot btex Ag n ann es etex OUT setrange origin whatever whatever gdraw agepopm d endgraph 4 4 3 Population en millions 2 1 a a 0 20 40 60 80 ge ann es FIG 4 Graphe de la distribution d ge de la population pour l ann e 1991 et source correspondant Le syst me de coordonn es n est pas n cessairement lin aire La commande setcoords permet un ou aux deux axes d tre gradu s de fa on logarith mique lt syst me de coordonn es gt set coords lt type de coordonn es gt lt type de coordonn es gt lt type de coordonn es gt 1log 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
29. 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 27 B 3 Autres nouvelles caract ristiques Les packages marith mp et sarith mp utilisent des nombres sup rieurs a 4096 Puisque de telles valeurs peuvent causer des probl mes d overflow de d passement de capacit dans le processus de r solution des quations lin aires dans METAPOST et les algorithmes d ajustement 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 explicites devaient toujours tre strictement inf rieures 4096 Pour tre complet 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 dire les sorties interpr t es par METAPOST selon les r gles de conversion POSTSCRIPT
30. re picture 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 S times 10 etex btexS Setex btex 2 etex Le premier argument dit comment composer un signe le second est un exemple de mantisse d un chiffre le troisi me indique le symbole 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 5 Conclusion Le package graph facilite la g n ration de graphes en langage METAPOST Les b n fices premiers sont la puissance de METAPOST et sa capacit in teragir avec TEX ou troff pour composer les tiquettes Les tiquettes ainsi 21 compos es peuvent tre stock es dans des variables figure et manipul 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 va riations sont possibles Le langage complet METAPOST
31. t Si l lt expression gt est de type cha ne de caract 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 plusieurs 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 ex plique 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 1Voir le manuel d utilisation 5 pour des explications des commandes draw et des l ments de syntaxe tels que les lt expressions images gt 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 Si l on ajoute l option de dessin l option wit hpen on obtient la superposition de la ligne sur les symboles de tra age 4x105 us oe 6 _ 3x10 2x106 os 10 0 20 40 60 80 FIG 2 La distribution d ge en 1991 dessin e avec des points noirs Les commandes glabe1 et gdot label ajoutent
32. tie TEX Une figure peut poss der plusieurs composants de chaque type Il est possible d y acc 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 26 composants de la figure dans l ordre o ils ont t trac s Le composant pour un chemin de d limitation ou set bounds comprend tout ce que le chemin inclut Ainsi si une simple d limitation ou un chemin setbounds s applique a tout ce qui est dans la figure la figure enti re peut tre consid r e comme un seul et gros composant De mani re a recenser les composants d une telle figure lit ration for within ignore les chemin de d limitation ou setbounds dans ce cas Une fois que l it ration for withina 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 retournent 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 p
33. u 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 Abstract This paper describes a graph drawing package that has been imple mented as an extension to the METAPOST graphics language METAPOST has a powerful macro facility for implementing such extensions There are also some new language features that support the graph macros Exist ing features for generating and manipulating pictures allow the user to do things that would be difficult to achieve in a stand alone graph package 1 Introduction METAPOST est un langage par lot gt orient graphique bas sur META FONT de KNUTH mais produisant des sorties POSTSCRIPT et poss dant de nombreuses caract ristiques pour l int gration de textes et de graphiques L au teur a essay de rendre ce papier aussi ind pendant que possible du manuel d utilisation 5 mais quelques connaissances du langage METAPOST permet tront d appr cier toutes les fonctionnalit s graphiques Ce document se fo calise sur les m canismes de production de certains graphiques particuliers parce que 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 puis
34. uoique ce soit en commun avec le pr c dent moins que des commandes set range imposent une gamme de valeurs similaire Par exemple les deux commandes setrange forcent les deux syst mes de coor donn es avoir les x entre 80 et 90 et les y gt 0 Lorsqu on utilise de mul tiples 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 gra phique lorsque la commande endgraph est interpr t e La figure 6 utilise la commande autogrid otick 1ft pour tiqueter le c t gauche du graphe avec l ordonn e y Cette commande agit avant la commande setcoords Ceci supprime les tiquettes d axe par d faut ainsi une autre commande autogrid est n cessaire pour tiqueter le bas et la droite du graphique utili sant un nouveau syst me de coordonn es 12 draw begingraph 2 3in 2in setcoords log log glabel lft 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 10 4 Secondes 0 1 0 01 20 50 100 200 500 Taille des matrices FIG 5 Temps d ex cution de deux algorithmes de multiplication de matrices et code METAPOST correspondant La syntaxe g n rale est autogrid lt
Download Pdf Manuals
Related Search
Related Contents
Télécharger la notice de Afebryl 32 comprimés Samsung NET-i ware Owner/User Manual 物品調達 購入数内訳書添付一覧 Q2BYG808M Stepper Driver User Manual User`s Manual Guía del usuario de TalkSwitch v6.50 La Grèce région par région Copyright © All rights reserved.
Failed to retrieve file