PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pgfplot - scale



pucki
12-01-2011, 11:13
Hallo,

ich habe ein kleines Problem mit pgfplot. Da ich aktuell sowohl unter Windows (MikTex 2.8) wie auch Linux (Paket: texlive-base (2009-11)) arbeite erhalte ich für folgendes Beispiel zwei unterschiedliche Ausgaben ..


\documentclass[
a4paper,11pt,
oneside,
final,
]{scrartcl}
\usepackage[european]{circuitikz}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\usetikzlibrary[matrix]
\usepackage{verbatim}
\usepackage{pgfplots}

\usepackage{amsfonts, amssymb} %, amsxtra, amsopn}
\usepackage{amsmath}

\begin{document}

\begin{tikzpicture}[xscale=1., yscale=1.,
]

\pgfplotsset{every axis legend/.append style={ at={(1.02,1)}, anchor=north west}}

\begin{axis}[
xscale=1., yscale=0.5,
grid=both,
xmode=normal, ymode=normal,
minor y tick num=1,
xmin=-3.1415,
xmax=3.1415,
ymin=-1.1,
ymax=1.1,
enlargelimits=false,
]

\addplot[mark=., blue, loosely dashed]
expression [domain=-3.15:3.15]{sin(x/3.1415*180)} ;
\addplot[mark=., green!80!black, densely dashed ]
expression [domain=-3.15:3.15]{cos(x/3.1415*180)} ;

\legend{
$\sin x$,
$\cos x$,
};

\end{axis}

\end{tikzpicture}

\begin{tikzpicture}[xscale=1., yscale=1.,
]

\pgfplotsset{every axis legend/.append style={ at={(1.02,1)}, anchor=north west}}

\begin{axis}[
xscale=1., yscale=1.,
grid=both,
xmode=normal, ymode=normal,
minor y tick num=1,
xmin=-3.1415,
xmax=3.1415,
ymin=-1.1,
ymax=1.1,
enlargelimits=false,
]

\addplot[mark=., blue, loosely dashed]
expression [domain=-3.15:3.15]{sin(x/3.1415*180)} ;
\addplot[mark=., green!80!black, densely dashed ]
expression [domain=-3.15:3.15]{cos(x/3.1415*180)} ;

\legend{
$\sin x$,
$\cos x$,
};

\end{axis}

\end{tikzpicture}

\end{document}


Unter Linux sind beide Legenden am oberen rechten Eck plaziert, unter Windows sitzt die Legende des skalierten Diagramms dann unglücklicherweise auf der Hälfte. Die Position der Legende wird also zwei mal skaliert ....

das könnte ein Problem durch unterschiedliche Versionen sein oder einfach ein Bug, allerdings hilft mir das auf die Schnelle nicht weiter.

hat jemand eine Idee, wie ich die aktuelle Umgebung mit einbeziehen kann?
wenn Windows, dann x, wenn Linux dann y?

grüße

Reinhard

ps: stehe etwas unter Zeitdruck ;-) und bin dankbar für jeden Tip.

pucki
12-01-2011, 11:47
ok, so funktioniert es zumindest hier im beispiel ...



\def\systemx{1}
\def\systemy{1}

\begin{tikzpicture}[xscale=1., yscale=1.,
]

\def\yscale{0.75};
\def\lyscale{\yscale/\systemy};
\def\xscale{1.5};
\def\lxscale{\xscale/\systemx};

\pgfplotsset{every axis legend/.append style={ at={(1.02/\lxscale,1/\lyscale)}, anchor=north west}}

\begin{axis}[
xscale=\xscale, yscale=\yscale,

.....


andere Vorschläge sind herzlich willkommen ...

pucki
12-01-2011, 17:03
man sollte die Doku richtig lesen ...

es gibt die Parameter:


width=xxcm,
height=yycm,


dann hat man auch keine Probleme mit der Legende ...