PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Achsenskalierung (10er Potenzen) bei \psplot mit package pst-plot



msthab
25-07-2016, 15:29
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)6205

Vielen Dank!
Manfred


\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}

msthab
27-07-2016, 14:29
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


\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=2 pt]{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}