Page 1 sur 1

Pas de numérotation

Posté : jeu. 6 mai 2010, 18:37
par maurice
Bonjour

une question bete sans doute, je cherche à faire une courbe avec les graduations mais sans la numérotation (éventuellemnt le 1 seulement).

j'ai écris :

Code : Tout sélectionner

        import graph;
   //Taille de l'image
   size(5cm,0);
   real xmin,xmax,ymin,ymax;
      xmin=-5;
      xmax=5;
      ymin=-5;
      ymax=5;
   
   //Courbe
   real f(real x) {return (2*x+1)/((x+1)*(x-2));}
   path cf1=graph(f,xmin,-1.1,n=400);
   path cf2=graph(f,-0.9,1.9,n=400);
   path cf3=graph(f,2.1,xmax,n=400);
   draw(cf1);
   draw(cf2);
   draw(cf3);
   xlimits(xmin,xmax,Crop);
   ylimits(ymin,ymax,Crop);
   
   //Repère
   xaxis(Label("$x$",align=Align),xmax=xmax+0.5,Ticks(NoZero,Step=6,step=1),Arrow);
   yaxis(Label("$y$",align=Align),ymax=ymax+0.5,Ticks(NoZero,Step=6,step=1,Arrow);   


J'ai mis Step=6 et step=1 comme ici : http://www.marris.org/asymptote/Grilles_Reperes/index.html
mais il reste toujours les zéros que je n'arrive pas à enlever.

Y'a-t-il un moyen ?
Ou y-a-t-il une commande qui permet de n'écrire aucune numérotation ?

Merci

Maurice

Re: pas de numérotation

Posté : jeu. 6 mai 2010, 18:42
par GM
Sur la page en question... tu n'as pas bien regardé ! Regarde les derniers exemples... tout en bas.

Tu y trouves des exemples de tickmodifier, qui l'un des paramètres des fonctions Ticks, LeftTicks, etc... pour contrer la numérotation automatique qui n'est pas toujours satisfaisante.

Un bien connu est : NoZero...

... mais il y a d'autres fonctions qui permettent de faire comme on veut :
OmitTickIntervals(real[] a, real[] b)
OmitTickInterval(real a, real b)

Re: pas de numérotation

Posté : jeu. 6 mai 2010, 19:52
par maurice
Merci,

J'ai remplacé NoZero par beginlabel=false

NoZero n'a pas l'air de fonctionner dans ce cas ...?

Maurice

PS : on lit sur la page d'exemple :

Code : Tout sélectionner

// ticks Ticks(Label format="", ticklabel ticklabel=null,
//             bool beginlabel=true, bool endlabel=true,
//             int N=0, int n=0, real Step=0, real step=0,
//             bool begin=true, bool end=true, tickmodifier modify=None,
//             real Size=0, real size=0, bool extend=false,
//             pen pTick=nullpen, pen ptick=nullpen)


ticklabel ticklabel=null

ne signifie pas qu'il n'y a pas de label (et de numérotation) à la base ?

Re: pas de numérotation

Posté : jeu. 6 mai 2010, 20:13
par GM
maurice a écrit :NoZero n'a pas l'air de fonctionner dans ce cas ...?

Si tu mets Step=4, le NoZero fonctionne... il ne fonctionne pas avec Step=6 : tu as peut-être trouvé un problème qu'il faudrait signaler à l'auteur.
Mais pourquoi mettre Step=6, si tu as xmax=5 ?

Essaie cela :

Code : Tout sélectionner

xaxis(Label("$x$",align=Align),xmax=xmax+0.5,Ticks("%",Step=5,step=1,NoZero),Arrow);
labelx("$1$",(1,0),N);
yaxis(Label("$y$",align=Align),ymax=ymax+0.5,Ticks("%",Step=5,step=1,NoZero),Arrow);   
labely("$2$",(0,2),E);

Note la présence du "%".

Re: pas de numérotation

Posté : jeu. 6 mai 2010, 21:40
par maurice
GM a écrit :
maurice a écrit :NoZero n'a pas l'air de fonctionner dans ce cas ...?

Si tu mets Step=4, le NoZero fonctionne... il ne fonctionne pas avec Step=6 : tu as peut-être trouvé un problème qu'il faudrait signaler à l'auteur.
Mais pourquoi mettre Step=6, si tu as xmax=5 ?


C'était pour ne pas avoir du tout de numérotation sur les axes.

Merci pour ton aide, je vais essayer tout ça.

Maurice