PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Logarithmische Skalierung PS-Plot



4nndee
15-03-2011, 18:41
Hallo zusammen,

ich habe ein kleines Problem mit der logarithmischen Skalierung meiner y-Achse. Eigentlich sollte diese bei 10^-1 beginnen (0y=-1), tut sie aber nicht und ich habe keine Ahnung warum. Jemand ne Idee woran das liegen könnte?



\documentclass[12pt,a4paper,oneside,titlepage]{scrreprt}
\usepackage[pdf]{pstricks}
\usepackage{pst-plot}

\begin{document}
\begin{pspicture}(-0.5,-1.5)(6.5,3)

\psset{xunit=2cm,yunit=2cm}

\psaxes[logLines=y,ylogBase=10, 0y=-1, subticks=10, xsubticks=10, tickwidth=1pt, xticklinestyle=solid, xsubticklinestyle=solid, xticksize=4, xsubticksize=1, Dx=100, dx=1]{->}(0,-1)(6.5,3)[$I/A$,-90][$t/s$,180]

%AMZ Phase
\psplot[linecolor=red, linewidth=2pt]{4.01}{6}{0.14 x 4 div 0.02 exp 1 sub div 0.15 mul log}

% AMZ Erde
\psplot[linecolor=blue, linewidth=2pt]{1.01}{6}{13.5 x 1 div 1 sub div 0.3 mul log}
% UMZ Erde
\psplot[linecolor=blue, linewidth=2pt]{4}{6} {0.05 log}
\psplot[linecolor=blue, linewidth=2pt]{2.5}{4} {0.5 log}

\end{pspicture}
\end{document}

voss
15-03-2011, 21:08
ich habe ein kleines Problem mit der logarithmischen Skalierung meiner y-Achse. Eigentlich sollte diese bei 10^-1 beginnen (0y=-1), tut sie aber nicht und ich habe keine Ahnung warum. Jemand ne Idee woran das liegen könnte?


nebenbei: du kannst die Funktion auch algebraisch beschreiben:


\documentclass[12pt,a4paper,oneside,titlepage]{scrreprt}
\usepackage[pdf]{pstricks}
\usepackage{pst-plot}

\begin{document}
\begin{pspicture}(-0.5,-1.5)(6.5,3)
\psset{unit=2cm}
\psaxes[logLines=y,ylogBase=10,subticks=10,tickwidth=1pt,
xticksize=4,xsubticksize=1,Oy=-1,
Dx=100, dx=1]{->}(0,-1)(6.5,3)[$I/A$,-90][$t/s$,180]
%AMZ Phase
\psplot[linecolor=red, linewidth=2pt,algebraic]{4.01}{6}{%
log(0.14/((x/4)^0.02-1)*0.15)}
% AMZ Erde
\psplot[linecolor=blue, linewidth=2pt]{1.01}{6}{13.5 x 1 div 1 sub div 0.3 mul log}
% UMZ Erde
\psplot[linecolor=blue, linewidth=2pt]{4}{6} {0.05 log}
\psplot[linecolor=blue, linewidth=2pt]{2.5}{4} {0.5 log}
\end{pspicture}
\end{document}

Herbert

4nndee
15-03-2011, 22:56
nebenbei: du kannst die Funktion auch algebraisch beschreiben:

Das vereinfacht natürlich die Sache enorm :-)

Wo lag jetzt genau mein Fehler? Hat sich da was bei den Parametern für psaxes nicht vertragen?

rais
16-03-2011, 00:29
Moin moin,


Wo lag jetzt genau mein Fehler?
so ich das richtig gesehen habe: Oy, nicht 0y.

MfG

4nndee
16-03-2011, 11:33
Oh man...

Das is mir nicht mal jetzt aufgefallen. Und das hätte ich bei der nächsten Grafik genau wieder falsch gemacht...
Ich dachte es hat was damit zu tun das da Parameter in anderer Reihenfolge angegeben werden. Jetzt bin ich schlauer.

Eine Frage hätte ich aber noch:
Und zwar haben ich in dem Diagramm jeweils zwei rote und zwei blaue horizontale Linien. Die sollen am Ende jeweils eine "Treppen-Funktion" ergeben, heißt ich will die irgend wie verbinden. Theoretisch würde das ja einfach mit einer Linie gehen, ist durch die logarithmische Skalierung aber nicht mehr ganz so einfach, da ich mir ja jetzt die entsprechenden logarithmischen Werte für Anfangs- und Endpunkt berechnen muss.

Gibt es eine Möglichkeit die Linien irgend wie einfacher zu verbinden?

voss
16-03-2011, 13:07
Eine Frage hätte ich aber noch:
Und zwar haben ich in dem Diagramm jeweils zwei rote und zwei blaue horizontale Linien. Die sollen am Ende jeweils eine "Treppen-Funktion" ergeben, heißt ich will die irgend wie verbinden. Theoretisch würde das ja einfach mit einer Linie gehen, ist durch die logarithmische Skalierung aber nicht mehr ganz so einfach, da ich mir ja jetzt die entsprechenden logarithmischen Werte für Anfangs- und Endpunkt berechnen muss.

Gibt es eine Möglichkeit die Linien irgend wie einfacher zu verbinden?

Die Skalierung ist doch lediglich logarithmisch, das Koordinatensystem nach wie vor linear, da kannst du einfach mit \psline()...() deine Linie ziehen.

Herbert

4nndee
16-03-2011, 13:14
Die Skalierung ist doch lediglich logarithmisch, das Koordinatensystem nach wie vor linear, da kannst du einfach mit \psline()...() deine Linie ziehen.

Du hast natürlich wieder mal recht, daher ja auch das "log" am Ende der Formeln. Ich werd das wohl noch ein paar mal machen müssen, bis mir das alles geläufig ist :-)

Gibt es den aber prinzipiell eine Möglichkeit, solche nicht-stetigen Funktionen plotten zu lassen?

voss
16-03-2011, 14:20
Gibt es den aber prinzipiell eine Möglichkeit, solche nicht-stetigen Funktionen plotten zu lassen?

du brauchst ja nur die horizontalen Linien zu zeichnen, die anderen
erfolgen inenrhalb von \pscustom automatisch:


\documentclass{article}
\usepackage{pstricks}
\pagestyle{empty}
\begin{document}

\pspicture[showgrid](6,3)
\pscustom[linecolor=blue]{
\moveto(1,0)
\psline(1,3)(2,3)
\psline(2,0)(3,0)
\psline(3,2)(4,2)
\psline(4,0)(5,0)
\psline(5,1)(6,1)
}
\endpspicture
\end{document}


Für längere Verläufe könnte man das auch automatisieren.

Herbert

4nndee
16-03-2011, 15:12
Perfekt, Danke :-)