Repère : place des labels

Pour toute demande d'aide sur des exemples non finalisés, c'est ici.
Les exemples aboutis et intéressants seront ajoutés aux sous-forums qui suivent.

Règles du forum
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.

J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :

  1. Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
  2. Version d'Asymptote et éditeur utilisé pour les figures Asymptote
  3. Distribution LaTeX et éditeur utilisé pour les tex.


On va gagner du temps dans les réponses !
maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Repère : place des labels

Message non lu par maurice » lun. 30 avr. 2012, 01:58

Bonsoir, j'ai fait ça pour illustrer les simulations et j'aimerais que les labels de l'axe des abscisses soient en haut et pas en bas !
Je n'ai pas trouvé de réponses, nul part !
Une idée.
Merci d'avance.

Figure asymptote 61db0b053aba44bd36fea7dcc99ca13f
*** 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
  1. import graph;
  2. size(7cm, 7cm, IgnoreAspect);
  3.  
  4. srand((int)time("%S"));
  5.  
  6. int jeu(int n=18) {
  7. int de1, de2, Gain;
  8. Gain=0;
  9. for(int i=0; i<n; ++i) {
  10. de1=floor(6*unitrand()+1);
  11. de2=floor(6*unitrand()+1);
  12. if(de1+de2==2 || de1+de2==11) Gain+=2;
  13. if(de1+de2==7) Gain-=2;
  14. }
  15. return Gain;
  16. }
  17.  
  18. real gain_moyen(int nb_parties) {
  19. int gain_inter=0;
  20. for(int i=0; i < nb_parties; ++i) gain_inter+=jeu();
  21. return gain_inter/nb_parties;
  22. }
  23.  
  24. int repetition = 50;
  25. int nb_parties = 200;
  26.  
  27. for(int i=0; i<repetition; ++i) {
  28. dot((i+1, gain_moyen(nb_parties)));
  29. }
  30.  
  31. xlimits(0,50);
  32. ylimits(-4,0);
  33. xaxis(BottomTop, 0, 50, Ticks(NoZero, Step=10, step=0));
  34. yaxis(LeftRight, -4, 0, Ticks(NoZero, Step=0.5, step=0.25, extend=true, pTick=grey));
  35. //label("$O$", (0,0), NW);


Maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: Repère : place des labels

Message non lu par maurice » lun. 30 avr. 2012, 04:11

Re-bonsoir,

j'ai résolu le problème en changeant le BottomTop en Top mais ai du rajouter la ligne

Code : Tout sélectionner

draw((0,-4)--(50,-4));


Pas très élégant ... ou bien ?

Figure asymptote 6a8617437a2b666c1306ad6259b7f42a
*** 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
  1. import graph;
  2. size(7cm, 7cm, IgnoreAspect);
  3.  
  4. srand((int)time("%H%M%S"));
  5.  
  6. int jeu(int n=18) {
  7. int de1, de2, Gain;
  8. Gain=0;
  9. for(int i=0; i<n; ++i) {
  10. de1=floor(6*unitrand()+1);
  11. de2=floor(6*unitrand()+1);
  12. if(de1+de2==2 || de1+de2==11) Gain+=2;
  13. if(de1+de2==7) Gain-=2;
  14. }
  15. return Gain;
  16. }
  17.  
  18. real gain_moyen(int nb_parties) {
  19. int gain_inter=0;
  20. for(int i=0; i < nb_parties; ++i) gain_inter+=jeu();
  21. return gain_inter/nb_parties;
  22. }
  23.  
  24. int repetition = 50;
  25. int nb_parties = 200;
  26.  
  27. for(int i=0; i<repetition; ++i) {
  28. dot((i+1, gain_moyen(nb_parties)));
  29. }
  30.  
  31. xlimits(0,50);
  32. ylimits(-4,0);
  33. xaxis(Top, 0, 50, Ticks(NoZero, Step=10, step=0));
  34. yaxis(LeftRight, -4, 0, Ticks(NoZero, Step=0.5, step=0.25, extend=true, pTick=grey));
  35. draw((0,-4)--(50,-4));
  36. label("$0$", (0,0), NW);


Merci pour vos solutions alternatives.

Maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1434
Enregistré le : dim. 7 mars 2010, 14:50

Re: Repère : place des labels

Message non lu par GM » lun. 30 avr. 2012, 13:12

Je teste sans la ligne que tu dis devoir ajouter :

Figure asymptote ba6be379d809ea3b5c612709d217668a
*** 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
  1. import graph;
  2. size(7cm, 7cm, IgnoreAspect);
  3.  
  4. srand((int)time("%H%M%S"));
  5.  
  6. int jeu(int n=18) {
  7. int de1, de2, Gain;
  8. Gain=0;
  9. for(int i=0; i<n; ++i) {
  10. de1=floor(6*unitrand()+1);
  11. de2=floor(6*unitrand()+1);
  12. if(de1+de2==2 || de1+de2==11) Gain+=2;
  13. if(de1+de2==7) Gain-=2;
  14. }
  15. return Gain;
  16. }
  17.  
  18. real gain_moyen(int nb_parties) {
  19. int gain_inter=0;
  20. for(int i=0; i < nb_parties; ++i) gain_inter+=jeu();
  21. return gain_inter/nb_parties;
  22. }
  23.  
  24. int repetition = 50;
  25. int nb_parties = 200;
  26.  
  27. for(int i=0; i<repetition; ++i) {
  28. dot((i+1, gain_moyen(nb_parties)));
  29. }
  30.  
  31. xlimits(0,50);
  32. ylimits(-4,0);
  33. xaxis(Top, 0, 50, Ticks(NoZero, Step=10, step=0));
  34. yaxis(LeftRight, -4, 0, Ticks(NoZero, Step=0.5, step=0.25, extend=true, pTick=grey));
  35.  
  36. label("$0$", (0,0), NW);
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 31/03/19) :
PC n°1 :Windows 10 - Asymptote(2.66)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1434
Enregistré le : dim. 7 mars 2010, 14:50

Re: Repère : place des labels

Message non lu par GM » lun. 30 avr. 2012, 14:30

En ajoutant un deuxième axe :

Figure asymptote 1c67e8702a5e83d54c5ce37cad4c3ecd
*** 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
  1. import graph;
  2. size(7cm, 7cm, IgnoreAspect);
  3.  
  4. srand((int)time("%H%M%S"));
  5.  
  6. int jeu(int n=18) {
  7. int de1, de2, Gain;
  8. Gain=0;
  9. for(int i=0; i<n; ++i) {
  10. de1=floor(6*unitrand()+1);
  11. de2=floor(6*unitrand()+1);
  12. if(de1+de2==2 || de1+de2==11) Gain+=2;
  13. if(de1+de2==7) Gain-=2;
  14. }
  15. return Gain;
  16. }
  17.  
  18. real gain_moyen(int nb_parties) {
  19. int gain_inter=0;
  20. for(int i=0; i < nb_parties; ++i) gain_inter+=jeu();
  21. return gain_inter/nb_parties;
  22. }
  23.  
  24. int repetition = 50;
  25. int nb_parties = 200;
  26.  
  27. for(int i=0; i<repetition; ++i) {
  28. dot((i+1, gain_moyen(nb_parties)));
  29. }
  30.  
  31. xlimits(0,50);
  32. ylimits(-4,0);
  33.  
  34. xaxis(Top, 0, 50, blue, Ticks(NoZero, Step=10, step=0));
  35. xaxis(Bottom, 0, 50, blue);
  36. yaxis(LeftRight, -4, 0, Ticks(NoZero, Step=0.5, step=0.25, extend=true, pTick=red));
  37.  
  38. label("$0$", (0,0), NW);


J'ai mis de la couleur pour mieux voir l'ajout de l'axe.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 31/03/19) :
PC n°1 :Windows 10 - Asymptote(2.66)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1434
Enregistré le : dim. 7 mars 2010, 14:50

Re: Repère : place des labels

Message non lu par GM » lun. 30 avr. 2012, 14:49

... et si tu remplaces :

Code : Tout sélectionner

xaxis(Bottom, 0, 50, blue);

par

Code : Tout sélectionner

xaxis(Bottom, blue);

ou par

Code : Tout sélectionner

yequals(y=-4,blue);

cela suffira.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 31/03/19) :
PC n°1 :Windows 10 - Asymptote(2.66)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: Repère : place des labels

Message non lu par maurice » lun. 30 avr. 2012, 19:23

Bonsoir, merci pour les réponses.

Il n'y a donc pas d'option à partir de

Code : Tout sélectionner

xaxis(BottomTop)


permettant d'avoir les graduations en haut ?

je vais tester ce que tu as dit....

A+

Maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1434
Enregistré le : dim. 7 mars 2010, 14:50

Re: Repère : place des labels

Message non lu par GM » lun. 30 avr. 2012, 20:09

maurice a écrit :Il n'y a donc pas d'option à partir de

Code : Tout sélectionner

xaxis(BottomTop)

permettant d'avoir les graduations en haut ?

J'ai cherché un peu à créer un "BottomTopMaurice" mais j'ai abandonné : la lecture de graph.asy m'a donné à penser (sans certitude) que tu n'auras pas plus simple que ce que j'ai proposé.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 31/03/19) :
PC n°1 :Windows 10 - Asymptote(2.66)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

Répondre