graduer les axes en ne commençant pas à zéro

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 !
StephaneD
Messages : 7
Enregistré le : ven. 2 avr. 2010, 12:35

graduer les axes en ne commençant pas à zéro

Message non lu par StephaneD » lun. 18 févr. 2013, 11:36

Bonjour,

Je cherche à faire un repère comme celui-ci (page 4):
https://docs.google.com/viewer?url=http ... pt2009.pdf

(annexe sujet CGRH, Antilles sept 2009)
Mon problème, c'est que je ne sais pas comment faire démarrer mes graduations à 4800.
J'ai bien essayé ceci

// DEBUT

settings.outformat='pdf';

import geometry;
import graph_pi;
usepackage("mathrsfs");

unitsize(1cm);

real xmin=-0.1, xmax=15.5, ymin=4800, ymax=8000;

real ech=1;

graphicrules(xunit=1cm, yunit=0.001cm,
xmin=xmin, xmax=xmax,
ymin=ymin, ymax=ymax,
crop=Crop
);

// Définition et tracé de la grille

grid(xmin, xmax, ymin, ymax,
xStep=1, xstep=1,
yStep=1000, ystep=250,
pTick=0.5bp+.4white,
ptick=0.3bp+.8white,
above=true
);

// Définition et tracé des axes

cartesianaxis(xticks=Ticks(scale(ech)*Label(fontsize(10),Fill(white)),
Step=1, step=1,
Size=0.75mm, size=.5mm,
NoZero,
pTick=1bp+black, ptick=grey),
yticks=Ticks(scale(ech)*Label(fontsize(10),Fill(white)),
Step=500, step=500,
Size=0.75mm, size=.5mm,
NoZero,
pTick=1bp+black, ptick=grey),
Arrow);



// La figure

point ja = (1, 5000);
dot("", ja, S, 6bp+blue);

// Les limites du dessin

real factxmin=0.1;
real factxmax=0.05;
real factymin=0.1;
real factymax=0.5;

xlimits(xmin-factxmin*(xmax-xmin),xmax+factxmax*(xmax-xmin),Crop);
ylimits(ymin-factymin*(ymax-ymin),ymax+factymax*(ymax-ymin),Crop);


shipout(bbox(1mm,Fill(white)));

// FIN

mais alors je n'ai plus d'axe des abscisses.
Quelqu'un aurait-il une idée?
Merci d'avance pour toute piste.
Stéphane Dutailly

Configuration: Ubuntu 12.04, Emacs 24.2.1, Asymptote 2.16 (installé depuis la logithèque Ubuntu), TexLive 2012

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

Re: graduer les axes en ne commençant pas à zéro

Message non lu par GM » lun. 18 févr. 2013, 13:00

Je vais y réfléchir... mais ce sera une solution sans graph_pi car cartesianaxis ne me semble pas prévu pour.
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 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

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

Re: graduer les axes en ne commençant pas à zéro

Message non lu par GM » lun. 18 févr. 2013, 13:36

Voilà... avec volontairement certains traits (par exemple ceux en orange) dont le style sera à changer... mais c'était pour montrer qu'il y a différents lieux de réglages.

Figure asymptote 0571f7207b12767b13c0099576cfb29b
*** 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.  
  3. //unitsize(1cm,0.01cm);
  4. unitsize(.5cm,0.005cm);
  5.  
  6. real xmin=0, xmax=13, xstep=1;
  7. real ymin=4800, ymax=6800, ystep=100;
  8. real[] xi={1,2,3,4,5,6,7,8,9,10};
  9. int[] yi={5000,5150,5300,5430,5570,5740,5860,6000,6120,6260};
  10. path polygone=graph(xi,yi);
  11.  
  12. marker croix=marker(scale(2)*rotate(45)*cross(4),.6bp+blue);
  13. // draw(polygone,croix); // points + polygone
  14. draw(polygone,nullpen,croix); // uniquement les points marqués d'une croix
  15.  
  16. // La grille
  17. xlimits(xmin,xmax);
  18. ylimits(ymin,ymax);
  19. pen pTick=orange;
  20. xaxis(BottomTop,pTick,Ticks("%",Step=5, step=1,
  21. pTick=gray,ptick=dotted,
  22. extend=true));
  23. yaxis(LeftRight,pTick,Ticks("%",Step=500, step=100,
  24. pTick=gray,ptick=dotted,
  25. extend=true));
  26. // Les axes
  27. pen stylo=fontsize(8pt);
  28. xequals(0, ymin,ymax+ystep,stylo,RightTicks(Size=1,end=false,endlabel=false,Step=ystep),Arrow);
  29. yequals(4800,xmin,xmax+xstep,stylo,LeftTicks(Size=1,end=false,endlabel=false,Step=xstep),Arrow);
  30. label("$x_i$ (rang)",(xmax+xstep,ymin),SE,stylo);
  31. label("$y_i$ (montant des charges en centaines d'euros)",(xmin,ymax+ystep),E,stylo);
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 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

StephaneD
Messages : 7
Enregistré le : ven. 2 avr. 2010, 12:35

Re: graduer les axes en ne commençant pas à zéro

Message non lu par StephaneD » lun. 18 févr. 2013, 14:34

Super!! Merci beaucoup :D

PS: en plus ça me donne plein d'idées à essayer!
Stéphane Dutailly

Configuration: Ubuntu 12.04, Emacs 24.2.1, Asymptote 2.16 (installé depuis la logithèque Ubuntu), TexLive 2012

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

Re: graduer les axes en ne commençant pas à zéro

Message non lu par GM » lun. 18 févr. 2013, 14:39

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 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

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

Re: graduer les axes en ne commençant pas à zéro

Message non lu par GM » mar. 19 févr. 2013, 09:37



Je viens de modifier le premier des deux... pour y remplacer un style de pointillés :

Code : Tout sélectionner

linetype("4 4")

par un autre

Code : Tout sélectionner

.2mm+linetype("0 "+ string(1mm),offset=0,scale=false,adjust=false)


Le nombre de points est ainsi adapté aux graduations.

Figure asymptote 05147a5b88033816707ef87804662094
*** 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.  
  3. //unitsize(1cm,0.01cm);
  4. unitsize(.5cm,0.005cm);
  5.  
  6. real xmin=0, xmax=12, xstep=1;
  7. real ymin=4800, ymax=6500, ystep=100;
  8. real[] xi={1,2,3,4,5,6,7,8,9,10};
  9. int[] yi={5000,5150,5300,5430,5570,5740,5860,6000,6120,6260};
  10. path polygone=graph(xi,yi);
  11.  
  12. marker croix=marker(scale(2)*cross(4),.6bp+blue);
  13. // draw(polygone,croix); // points + polygone
  14. draw(polygone,nullpen,croix); // uniquement les points marqués d'une croix
  15.  
  16. // La grille
  17. xlimits(xmin,xmax);
  18. ylimits(ymin,ymax);
  19. pen pBord=nullpen,
  20. pGrille=.2mm+linetype("0 "+ string(1mm),offset=0,scale=false,adjust=false);
  21. xaxis(BottomTop,pBord,Ticks("%",Step=5, step=1,
  22. pTick=gray,ptick=pGrille,
  23. extend=true));
  24. yaxis(LeftRight,pBord,Ticks("%",Step=500, step=100,
  25. pTick=gray,ptick=pGrille,
  26. extend=true));
  27. // Les axes
  28. pen stylo=fontsize(8pt);
  29. xequals(0, ymin,ymax+ystep,stylo,RightTicks(Size=1,end=false,endlabel=false,Step=ystep),Arrow);
  30. yequals(4800,xmin,xmax+xstep,stylo,LeftTicks(Size=1,end=false,endlabel=false,Step=xstep),Arrow);
  31. label("$x_i$ (rang)",(xmax+xstep,ymin),SE,stylo);
  32. label("$y_i$ (montant des charges en centaines d'euros)",(xmin,ymax+ystep),E,stylo);
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 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

Répondre