J'avais commencé par écrire ça :
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
- import graph;
- size(7cm);
- real[] V={2,3,2,2,6,3}, R={6,4,3,2,1,2}, P={1,2,2,4,3,6};
- real[] X={1,2,3,4,5,6};
- path Virginia=graph(X,V);
- path Roger=graph(X,R);
- path Pascale=graph(X,P);
- marker Vi=marker(scale(4)*polygon(3), filltype=FillDraw(green), green);
- marker Ro=marker(scale(3)*unitcircle,filltype=FillDraw(blue), blue);
- marker Pa=marker(scale(4)*polygon(4), filltype=FillDraw(red), red);
- draw(Virginia, green, "Virginia");
- draw(Roger, blue, "Roger");
- draw(Pascale, red, "Pascale");
- for(int i=0 ; i<6; ++i) {
- draw((X[i],V[i]), Vi);
- draw((X[i],R[i]), Ro);
- draw((X[i],P[i]), Pa);
- }
- xaxis(0,7.5,ticks=RightTicks(NoZero, Step=1, step=1), Arrow);
- yaxis(LeftRight, 0,7,gray,ticks=Ticks("%", extend=true, Step=1, step=0, end=true));
- yaxis(0,7.7, ticks=(RightTicks(NoZero, Step=1, step=0)), Arrow);
- attach(legend(),point(N),(0,0),UnFill);
Première question : est-on obligé de dessiner les chemins puis les points en deux étapes séparées ? Pas moyen de tracer les points par une commande du genre dot(chemin, Vi) ?
Deuxième question : dans la ligne
Code : Tout sélectionner
attach(legend(),point(N),(0,0),UnFill);
Dans certains exemple sur le site de P. Ivaldi, on trouve
Code : Tout sélectionner
attach(legend(),point(E),20E,UnFill);
Autre problème : C'est prévu pour être imprimé en noir et blanc et que j'aurais aimé avoir un cercle, un carré et un triangle dans la légende, au mulieu de la ligne par exemple.
Du coup j'ai fait ça avec une picture :
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
- import graph;
- size(7cm);
- real[] V={2,3,2,2,6,3}, R={6,4,3,2,1,2}, P={1,2,2,4,3,6};
- real[] X={1,2,3,4,5,6};
- path Virginia=graph(X,V);
- path Roger=graph(X,R);
- path Pascale=graph(X,P);
- marker Vi=marker(scale(4)*polygon(3), filltype=FillDraw(green), green);
- marker Ro=marker(scale(3)*unitcircle,filltype=FillDraw(blue), blue);
- marker Pa=marker(scale(4)*polygon(4), filltype=FillDraw(red), red);
- draw(Virginia, green);
- draw(Roger, blue);
- draw(Pascale, red);
- for(int i=0 ; i<6; ++i) {
- draw((X[i],V[i]), Vi);
- draw((X[i],R[i]), Ro);
- draw((X[i],P[i]), Pa);
- }
- xaxis(0,7.5,ticks=RightTicks(NoZero, Step=1, step=1), Arrow);
- yaxis(LeftRight, 0,7,gray,ticks=Ticks("%", extend=true, Step=1, step=0, end=true));
- yaxis(0,7.7, ticks=(RightTicks(NoZero, Step=1, step=0)), Arrow);
- picture pic;
- unitsize(pic, 0.35cm);
- draw(pic, (0,0), Vi); label(pic, "\small Virginia", (0,0), 3E);
- draw(pic, (0,-1), Ro); label(pic, "\small Roger", (0,-1), 3E);
- draw(pic, (0,-2), Pa); label(pic, "\small Pascale", (0,-2), 3E);
- //shipout(bbox(pic, 2mm));
- add(pic.fit(), (2,7.35));
deuxième question : peut-on faire uniquement avec légend() ? Si oui comment ? Sinon y'a-t-il un moyen plus simple que de passer par picture ?
Ensuite j'ai voulu ajouté un cadre autour de la légende ; j'ai donc ajouté la ligne :
Code : Tout sélectionner
shipout(bbox(pic, 2mm));
et j'obtiens :
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
- import graph;
- size(7cm);
- real[] V={2,3,2,2,6,3}, R={6,4,3,2,1,2}, P={1,2,2,4,3,6};
- real[] X={1,2,3,4,5,6};
- path Virginia=graph(X,V);
- path Roger=graph(X,R);
- path Pascale=graph(X,P);
- marker Vi=marker(scale(4)*polygon(3), filltype=FillDraw(green), green);
- marker Ro=marker(scale(3)*unitcircle,filltype=FillDraw(blue), blue);
- marker Pa=marker(scale(4)*polygon(4), filltype=FillDraw(red), red);
- draw(Virginia, green);
- draw(Roger, blue);
- draw(Pascale, red);
- for(int i=0 ; i<6; ++i) {
- draw((X[i],V[i]), Vi);
- draw((X[i],R[i]), Ro);
- draw((X[i],P[i]), Pa);
- }
- xaxis(0,7.5,ticks=RightTicks(NoZero, Step=1, step=1), Arrow);
- yaxis(LeftRight, 0,7,gray,ticks=Ticks("%", extend=true, Step=1, step=0, end=true));
- yaxis(0,7.7, ticks=(RightTicks(NoZero, Step=1, step=0)), Arrow);
- picture pic;
- unitsize(pic, 0.35cm);
- draw(pic, (0,0), Vi); label(pic, "\small Virginia", (0,0), 3E);
- draw(pic, (0,-1), Ro); label(pic, "\small Roger", (0,-1), 3E);
- draw(pic, (0,-2), Pa); label(pic, "\small Pascale", (0,-2), 3E);
- shipout(bbox(pic, 2mm));
- add(pic.fit(), (2,7.25));
Troisième question : qu'est ce qui cloche ? Quelle est la bonne méthode ?
Merci d'avance.
Bruno