Tikz -> \addplot -> Sinus (Skalierungsproblem)

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


MasterWizz
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Di 19. Jan 2016, 13:05

Tikz -> \addplot -> Sinus (Skalierungsproblem)

Beitrag von MasterWizz »

Hey Leute,
ich habe ein kleines Problem, für das ihr sicher bereits eine einfache Lösung kennt. Gibt es für meinen TeX-Code einen Befehl, damit die Skalierung zwischen x- und y-Achse so dargestellt wird, dass x=180° auch wirklich x=3,14 entsprechen? Hier scheint 1 Einheit in y-Richtung gleich pi Einheiten in x-Richtung zu entsprechen, das gefällt mir nicht.

Von der Berechnung mit Gradzahlen möchte ich nur ungern abweichen, weil sich die Plots so "leichter kontrollieren" lassen, finde ich.

EDIT: Für Schönheitsoperationen am Code und weiteren Ideen habe ich aber jederzeit ein offenes und interessiertes Ohr :)
\documentclass[11pt]{article}

\pagestyle{empty}
\usepackage[ngerman]{babel}

%Tikz
\usepackage{tikz}
\usepackage{etex}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{patterns}


%%%%%%%%%%%BEGINN DOKUMENT%%%%%%%%%%%
\begin{document}
\begin{minipage}[t]{0cm}\hfill
\begin{tikzpicture}
  \begin{axis}[
      axis lines = middle, 
      xlabel=$x$, 
      xlabel style={at=(current axis.right of origin), anchor=south},
      ylabel=$y$, 
      ylabel style={at=(current axis.above origin), anchor=base east},
      xmin=-180,xmax=360,ymin=-1,ymax=1,
      xtick = {-180,-90,...,360},
      xticklabels = {$-\pi$,$-\frac{\pi}{2}$,0,$\frac{\pi}{2}$,$\pi$,$\frac{3}{2}\pi$,$2\pi$},
      ytick ={-1,0,1},
      yticklabels ={$-1$,$0$,$1$},
      enlarge x limits=.05,
      enlarge y limits=.2
      ]

\addplot[blue,thick,samples=300,domain=-180:360]{sin(x)};


\addplot[red,dashed,domain=-180:-45]{1};
\addplot[red,dashed,domain=0:360]{1};

\addplot[red,dashed,domain=-180:-70]{-1};
\addplot[red,dashed,domain=0:360]{-1};

\end{axis}
\end{tikzpicture}
\end{minipage}
\end{document}

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Du kannst die Längen einer Einheit in x- und y-Richtung vorgeben:
\documentclass[11pt]{article}

\pagestyle{empty}
\usepackage[ngerman]{babel}

%Tikz
\usepackage{pgfplots}% lädt auch tikz
\pgfplotsset{compat=newest}% <- compat immer direkt nach dem Laden setzen; aktuelle Version =1.16
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{patterns}


%%%%%%%%%%%BEGINN DOKUMENT%%%%%%%%%%%
\begin{document}
\begin{minipage}[t]{0cm}\hfill
\begin{tikzpicture}
  \begin{axis}[
      axis lines = middle, 
      xlabel=$x$, 
      xlabel style={at=(current axis.right of origin), anchor=south},
      ylabel=$y$, 
      ylabel style={at=(current axis.above origin), anchor=base east},
      xmin=-180,xmax=360,ymin=-1,ymax=1,
      xtick = {-180,-90,...,360},
      xticklabels = {$-\pi$,$-\frac{\pi}{2}$,0,$\frac{\pi}{2}$,$\pi$,$\frac{3}{2}\pi$,$2\pi$},
      ytick ={-1,0,1},
      yticklabels ={$-1$,$0$,$1$},
      enlarge x limits=.05,
      enlarge y limits=.2,
      y=1cm,% <- ergänzt
      x=0.017444cm% <- ergänzt
      ]

\addplot[blue,thick,samples=300,domain=-180:360]{sin(x)};


\addplot[red,dashed,domain=-180:-45]{1};
\addplot[red,dashed,domain=0:360]{1};

\addplot[red,dashed,domain=-180:-70]{-1};
\addplot[red,dashed,domain=0:360]{-1};

\end{axis}
\end{tikzpicture}
\end{minipage}
\end{document}

MasterWizz
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Di 19. Jan 2016, 13:05

Beitrag von MasterWizz »

Wow vielen Dank für die schnelle Antwort und die zusätzlichen Kommentare :)

Antworten