[Résolu] Dimension too large [PSTricks]

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] Dimension too large [PSTricks]

Messagepar Fabrice Couvreur » Dimanche 10 Mars 2013, 21:19

Bonsoir,
Dans le code ci-après, si je veux mettre des labels sur les axes, j'ai le message " ! Dimension too large ". Ce dernier est explicite, j'ai donc modifié les unités graphiques sur chaque axe, mais rien n'y fait, il compile seulement si j'indique labels=none :
Code: Tout sélectionner
\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}
\usepackage{mathtools,amsmath,amsfonts,amssymb,amsthm,mathrsfs,nccmath}
\usepackage{pstricks,pst-eps}
\usepackage{pstricks-add}
\pagestyle{empty}
\begin{document}
\begin{center}
\begin{TeXtoEPS}
\psset{xunit=0.3cm,yunit=0.0004cm,arrowscale=1.3,algebraic=true,labelFontSize=\scriptstyle,dotsize=2pt}
\begin{pspicture}(-4,-100)(42,55000)
\def\F{x^3-60*x^2+1800*x+3}
\def\G{1275*x}
\psgrid[subgriddiv=0,gridlabels=0,gridcolor=lightgray,xunit=2,yunit=5000](20,11)
\psaxes[labels=none,linewidth=1pt,Dx=2,Dy=5000,Ox=0,Oy=0,ticksize=-3pt 0pt]{->}(0,0)(40,55000)
\psplot[plotpoints=8000,linewidth=1pt]{0}{40}{\F}
\psplot[plotpoints=8000,linewidth=1pt]{0}{40}{\G}
\end{pspicture}
\end{TeXtoEPS}
\end{center}
\end{document}

Merci.
Dernière édition par Fabrice Couvreur le Mardi 12 Mars 2013, 17:11, édité 1 fois.
Fabrice Couvreur
Giga-utilisateur
 
Messages: 601
Inscription: Samedi 18 Août 2007, 00:55

Publicité

Re: Dimension too large [PSTricks]

Messagepar djiblamb » Mardi 12 Mars 2013, 15:07

Bonjour Fabrice.
Effectivement, il y a un souci avec l'unité sur l'axe des ordonnées (ton code compile correctement avec labels=x).

Je te propose deux solutions :
  • soit tout diviser par 1000 et utiliser l'option ylabelFactor de pst-plot pour afficher les labels sur l'axe des ordonnées ; ce qui donne :
    Code: Tout sélectionner
    \documentclass[a4paper,11pt]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[frenchb]{babel}
    \usepackage{pstricks,pst-plot}
    \usepackage[a4paper,dvips,hmargin=1.5cm,top=1.5cm,bottom=1.5cm,headsep=0.2cm,footskip=5mm,includefoot]{geometry}   
    \pagestyle{empty}
       
    \begin{document}
    \begin{center}
    \psset{xunit=0.3cm,yunit=0.4cm,arrowscale=1.3,algebraic=true,labelFontSize=\scriptstyle,dotsize=2pt}
    \begin{pspicture}(-4,-1)(42,55)
    \def\F{(x^3-60*x^2+1800*x+3)/1000}
    \def\G{1.275*x}
    \psgrid[subgriddiv=0,gridlabels=0,gridcolor=lightgray,xunit=2,yunit=5](20,11)
    \psaxes[ylabelFactor=\times 10^3,linewidth=1pt,Dx=2,Dy=5,ticksize=-3pt 0pt]{->}(0,0)(40,55)
    \psplot[plotpoints=800,linewidth=1pt]{0}{40}{\F}
    \psplot[plotpoints=800,linewidth=1pt]{0}{40}{\G}
    \end{pspicture}
    \end{center}
    \end{document}
  • soit garder le code tel quel (avec labels=x) et placer les labels à la main avec un multido et en utilisant l'option np du package numprint pour le formatage ; ce qui donne :
    Code: Tout sélectionner
    \documentclass[a4paper,11pt]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[frenchb]{babel}
    \usepackage{pstricks,pst-plot}
    \usepackage{multido}
    \usepackage[np]{numprint}
    \usepackage[a4paper,dvips,hmargin=1.5cm,top=1.5cm,bottom=1.5cm,headsep=0.2cm,footskip=5mm,includefoot]{geometry}   
    \pagestyle{empty}

    \begin{document}
    \begin{center}
    \psset{xunit=0.3cm,yunit=0.0004cm,arrowscale=1.3,algebraic=true,labelFontSize=\scriptstyle,dotsize=2pt}
    \begin{pspicture}(-4,-100)(42,55000)
    \def\F{x^3-60*x^2+1800*x+3}
    \def\G{1275*x}
    \psgrid[subgriddiv=0,gridlabels=0,gridcolor=lightgray,xunit=2,yunit=5000](20,11)
    \psaxes[labels=x,linewidth=1pt,Dx=2,Dy=5000,ticksize=-3pt 0pt]{->}(0,0)(40,55000)
    \multido{\i=5000+5000}{11}{\uput[l](0,\i){$\scriptstyle\np{\i}$}}
    \psplot[plotpoints=800,linewidth=1pt]{0}{40}{\F}
    \psplot[plotpoints=800,linewidth=1pt]{0}{40}{\G}
    \end{pspicture}
    \end{center}
       
    \end{document}
J'ai aussi essayé avec psgraph, mais sans succès.

Djib
djiblamb
Hecto-utilisateur
 
Messages: 89
Inscription: Samedi 27 Septembre 2008, 09:58
Statut actuel: Actif et salarié | Enseignant

Re: Dimension too large [PSTricks]

Messagepar Fabrice Couvreur » Mardi 12 Mars 2013, 17:11

Bonjour djiblamb,
Je me doutais bien que si tu passais par là, ta curiosité serait attisée par un post parlant de PSTricks, comme un grand spécialiste que tu es. :wink:
djiblamb a écrit:Effectivement, il y a un souci avec l'unité sur l'axe des ordonnées

Cela me rassure, car j'ai eu "peur" d'être passé à côté d'un truc simple !
La solution avec multido, je l'avais adoptée faute d'avoir résolu le problème de mon code. Merci pour la deuxième solution (avec l'option ylabelFactor que je ne connaissais pas car je n'ai pas encore lu la documentation entièrement).
Encore merci.
Fabrice Couvreur
Giga-utilisateur
 
Messages: 601
Inscription: Samedi 18 Août 2007, 00:55


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google Adsense [Bot] et 6 invités