Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Achsenskalierung (10er Potenzen) bei \psplot mit package pst-plot

  1. #1
    Registrierter Benutzer
    Registriert seit
    08.02.2012
    Beiträge
    48

    Achsenskalierung (10er Potenzen) bei \psplot mit package pst-plot

    Hallo,

    ich möchte gerne eine Funktion mit \psplot plotten. In "normalen" Bereichen (also z.B. von -10 bis 10) kein Problem (siehe Minimal-Beispiel).

    Meine x-Achse soll aber von 0 bis 10E-10 laufen. Der Ausdruck soll in etwa so aussehen, wie der Matlab-Ausdruck im Anhang. Das bekomme ich einfach nicht hin.
    Das Minimal-Beispiel müßte also so geändert werden, dass die x-Achse von 0 bis 10E-10 läuft.

    Es wäre zusätzlich schön, wenn auf der x-Achse die Lage der Nullstelle und des Minimums markiert werden (siehe Matlab-Ausdruck im Anhang)Diagramm mit Matlab.jpg

    Vielen Dank!
    Manfred

    Code:
    \documentclass[english]{article}
    \usepackage{lmodern}
    \usepackage[T1]{fontenc}
    \usepackage{units}
    \usepackage[latin9]{inputenc}
    \usepackage{pst-plot}
    \usepackage{babel}
    
    
    \begin{document}
    
    %Definition der zu plottenden Funktion
    \newcommand{\constA}{1.50E-134}      % Konstante A
    \newcommand{\constB}{1.03E-77} 	% Konstante B
    \newcommand{\funktion}[1]{(\constA/(#1^12)-\constB/(#1^6))/(1.6E-19)} %die eigentliche Funktion, Ausgabe in eV
    
    \psset{yunit=0.5cm}
    \begin{pspicture*}(-1,-10)(11,11) % 
    
    \psaxes{->}(0,0)(0,-9.5)(11,9.5)                                                         % Die x-Achse soll von 0 bis 10E-10 laufen
    \psplot[algebraic,linecolor=red,linewidth=1pt]{0.1}{10}{ \funktion{x} }      % Der Plottbereich soll von 1E-11 bis 10E-10 laufen
    \uput[-90](9.5,-1){$x/\unit{m}$}\uput[-10](-0.1,10){$W(x)/\unit{eV}$}   %entsprechend sollen auch die Achsenbeschriftungen liegen
    \psgrid[gridcolor=blue,gridlabels=0,griddots=5,subgriddiv=0](0,0)(0,-10)(10,9) %und die Netzlinien geändert werden
    
    \end{pspicture*}
    
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    08.02.2012
    Beiträge
    48

    Nachtrag: Indirekte Lösung gefunden

    Nachtrag:
    Ich habe eine (indirekte) Lösung gefunden.
    Mit den ganzen 10er-Potenzen ist Latex wohl überfordert. Ich habe in der Gleichung alle Zehner-Potenzen gekürzt und so skaliert, dass die Funktion für einen x-Bereich von x=[0,10] ausgeben wird.
    Dann funktioniert es

    Code:
    \documentclass[english]{article}
    \usepackage{lmodern}
    \usepackage[T1]{fontenc}
    \usepackage{units}
    \usepackage[latin9]{inputenc}
    \usepackage{pst-plot}
    \usepackage{babel}
    \usepackage{tikz}
    
    \begin{document}
    
    %Definition der zu plottenden Funktion
    
    
    \newcommand{\funktion}[1]{((1.5E5/((#1)^12))-(1.03E2/((#1)^6)))*1000/1.6} %die eigentliche Funktion, alle 10er-Potenzen gekürzt und auf x=[0,10] skaliert
    
    \psset{yunit=0.4cm}
    \begin{pspicture*}(-1,-14)(11,10) % 
    
    %\psaxes[xlabelFactor={\cdot 10^{-10}},Dx=2,Dy=2]{->}(0,0)(0,-13)(11,9.5) 
    \psaxes[Dx=2,Dy=2]{->}(0,0)(0,-13)(10,9.5) 
    \psplot[plotpoints=200,algebraic,linecolor=red,linewidth=2pt]{1}{10}{\funktion{x} } 
    \uput[-90](9.5,-1){\large$x/10^{-10}\unit{m}$}\uput[-10](-0.1,9.5){\large$W(x)/\unit{meV}$} 
    \psgrid[gridcolor=blue,gridlabels=0,griddots=5,subgriddiv=0](0,0)(0,-12)(10,8) 
    
    \end{pspicture*}
    
    \end{document}

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •