Seite 1 von 1

pgfplot: Plot mit Border UND Achsenlinien

Verfasst: Mo 20. Jan 2014, 12:02
von dj_fusspflege
Hallo Forum,

ich würde gerne einen Plot erstellen, der sowohl den Rand (oder Border) als auch die Achsenlinien beinhaltet.
Sobald ich aber die axis lines "einschalte", verschwindet die Umrandung des Plots und ich finde in den Anleitungen keinen Hinweis, wie ich den Border manuell wieder erzwinge. Da die meisten Diagramme ohne die Achsen auskommen, möchte ich das einheitliche Aussehen mit Rand beibehalten.

Ich wäre über eine Anregung sehr froh!
\begin{tikzpicture}
  \begin{axis}
  [xlabel=$\omega$,
   ylabel=$F(j\omega)$,
   	width=8cm,
   	height=8cm, 
   %axis lines=middle,
   domain=-25:25,
  xmin=-20, xmax=+20,
  ymin=-1, ymax=2]
    \addplot+[ycomb, color=red, mark=*,mark size=0.5pt,] table[x=omega, y=y]{Daten/si-func.csv};
    \addplot [dash pattern=on 0.5pt off 2pt, color=orange,mark=*,mark size=0.1pt,] {sin(deg(x))/x};
  \end{axis}
\end{tikzpicture}

Verfasst: Mo 20. Jan 2014, 14:26
von esdd
Einen einfachen Rahmen außen herum könnte man selbst zeichnen, muss dann nur aufpassen, dass es kein Problem mit der Achsenbeschriftung gibt:
\documentclass[margin=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document} 

\begin{tikzpicture} 
   \begin{axis} 
   [xlabel=$\omega$, 
    ylabel=$F(j\omega)$, 
       width=8cm, 
       height=8cm, 
    axis lines=middle,enlargelimits=0.1,
    domain=-25:25, 
   xmin=-20, xmax=+20, 
   ymin=-1, ymax=2] 
     %\addplot+[ycomb, color=red, mark=*,mark size=0.5pt,] table[x=omega, y=y]{Daten/si-func.csv}; 
     \addplot [dash pattern=on 0.5pt off 2pt, color=orange,mark=*,mark size=0.1pt,] {sin(deg(x))/x}; 
   \end{axis} 
  \draw(current axis.south west)rectangle(current axis.north east);
\end{tikzpicture}  

\end{document}
Gruß
Elke

PS: Bitte erstelle immer vollständige und lauffähige Minimalbeispiele. Deine Datendatei haben wir zum Beispiel nicht.

Verfasst: Mo 20. Jan 2014, 14:53
von dj_fusspflege
Hallo Elke,

danke für Deinen Hinweis und Deine Idee.
Ich habe im folgenden Code mal die drei Diagramme zum Vergleich gegenübergestellt. Mein Wunsch wäre das erste Diagramm mit Achsen durch den Ursprung. Die von Dir vorgeschlagene Box sieht eben etwas anders aus. Wenn sich dafür nix finden lässt, werde ich wohl alle Diagramme nochmal überarbeiten, aber an sich gefällt mir der Standard ganz gut.

Ich hoffe, dass das jetzt ein anständiges Minimalbeispiel ist...
\documentclass[12pt]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern} % benutzt einen vektorbasierten Font statt dem Bitmap-basierten
\usepackage[ngerman]{babel} % stellt die Dokumentsprache auf deutsch
\usepackage{tikz}
\usepackage{pgfplots} % für Diagrammerstellung
\pgfplotsset{samples=200} %Setzt den Wert von 200 Punkten als default für Diagramme

      
\begin{document}

\begin{tikzpicture}
  \begin{axis}
  [xlabel=$\omega$,
   ylabel=$y$,
   	width=8cm,
   	height=8cm, 
   %axis lines=middle,
   domain=-25:25,
  xmin=-25, xmax=+25,
  ymin=-1, ymax=2]
    \addplot [dash pattern=on 2pt off 2pt, color=orange,mark=*,mark size=0.1pt,] {sin(deg(x))/x};
  \end{axis}
\end{tikzpicture}

\begin{tikzpicture}
  \begin{axis}
  [xlabel=$\omega$,
   ylabel=$y$,
   	width=8cm,
   	height=8cm, 
   axis lines=middle,
   domain=-25:25,
  xmin=-25, xmax=+25,
  ymin=-1, ymax=2]
    \addplot [dash pattern=on 2pt off 2pt, color=orange,mark=*,mark size=0.1pt,] {sin(deg(x))/x};
  \end{axis}
\end{tikzpicture}

\begin{tikzpicture}
  \begin{axis}
  [xlabel=$\omega$,
   ylabel=$y$,
   	width=8cm,
   	height=8cm, 
   axis lines=middle,
   domain=-25:25,
  xmin=-25, xmax=+25,
  ymin=-1, ymax=2]
    \addplot [dash pattern=on 2pt off 2pt, color=orange,mark=*,mark size=0.1pt,] {sin(deg(x))/x};
     \draw(current axis.south west)rectangle(current axis.north east); 
  \end{axis}
\end{tikzpicture}


	

\end{document}

Verfasst: Mo 20. Jan 2014, 15:38
von esdd
Du kannst dir natürlich auch in die erste Variante einfach Achsen einzeichnen lassen. Die noch einmal zu beschriften, dürfte ja nicht notwendig sein?
\documentclass[12pt]{scrartcl} 
\usepackage{pgfplots} % für Diagrammerstellung 
\pgfplotsset{samples=200} %Setzt den Wert von 200 Punkten als default für Diagramme 

\begin{document} 

\begin{tikzpicture} 
  \begin{axis} 
    [xlabel=$\omega$,ylabel=$y$, 
      width=8cm, height=8cm, 
      domain=-25:25, 
      xmin=-25, xmax=+25, 
      ymin=-1, ymax=2] 
    \draw[-stealth]({axis cs: 0,0}-|{rel axis cs:0,0})--({axis cs:0,0}-|{rel axis cs:1,0});
    \draw[-stealth]({axis cs: 0,0}|-{rel axis cs:0,0})--({axis cs:0,0}|-{rel axis cs:0,1});
    \addplot [dash pattern=on 2pt off 2pt, color=orange,mark=*,mark size=0.1pt,] {sin(deg(x))/x}; 
  \end{axis} 
\end{tikzpicture} 
\end{document}
Gruß
Elke

Verfasst: Mo 20. Jan 2014, 16:44
von dj_fusspflege
Das ist genau was ich wollte, ohne zusätzliche Achsenbeschriftung!
Funktioniert hervorragend- da wäre ich alleine nicht drauf gekommen!

Vielen Dank, so werde ich es machen!!