Ich möchte meine Daten plotten, am liebsten wie im Titel angegeben mit zwei X- (oben und unten) und einer Y-Achse. Auf der oberen X-Achse (X2) soll die Frequenz logarithmisch aufgetragen werden. Ansonsten werden Realteil (X1) und Imaginärteil (Y) aufgetragen.

Hier ist mein bisheriger Code:

Open in Online-Editor
\documentclass[paper=a4,ngerman,xcolor=dvipsnames]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[]{pgfplots}
\usepackage[]{tikz}
\usepackage{siunitx}

\pgfplotscreateplotcyclelist{mycolorlist}{
blue!01!green,every mark/.append style={fill=blue!10!black},mark=+\\
}
\pgfplotscreateplotcyclelist{mycolorlist2}{
blue!70!green,every mark/.append style={fill=blue!10!black},mark=+\\
}

\pgfplotsset{compat=1.9}
\pgfplotsset{every axis label/.append style={font=\large}}
\pgfplotsset{every tick label/.append style={font=\large}}

\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
grid=both, 
axis equal,
width=12cm, 
height=9cm,
xtick pos=left,
ytick pos=left,    
xlabel={x1}, ylabel={y1}, 
legend style={at={(0.97,0.03)},anchor=south east, cells={anchor=west}},
legend style={font=\footnotesize},
cycle list name=mycolorlist,
]
\addplot table [x=b,y expr=-\thisrow{c}]{myData.txt};
\legend{Zyklus 0}
\end{axis}

\begin{semilogxaxis}[
width=12cm,
height=9cm,
cycle list name=mycolorlist2,
axis x line*=top,
xlabel={x2}     
]
\addplot table [y=c,x=a]{myData.txt};
\end{semilogxaxis}
\end{tikzpicture}
\end{figure}
\end{document}

Hier ist ein Auszug aus myData.txt

Number a b c Significance Time/s 1 1.1307e+03 3.7337e-01 -5.3821e-02 1.000 0.0 2 1.4176e+03 3.6739e-01 -5.1699e-02 1.000 2.1 3 1.7774e+03 3.5992e-01 -4.9973e-02 1.000 3.0 4 2.2284e+03 3.5299e-01 -4.7547e-02 1.000 4.0 5 2.7940e+03 3.4617e-01 -4.5755e-02 1.000 4.9 6 3.5030e+03 3.3947e-01 -4.4076e-02 1.000 5.8 7 4.3920e+03 3.3355e-01 -4.1470e-02 1.000 6.7 8 5.5066e+03 3.2729e-01 -4.0056e-02 1.000 7.7 9 6.9041e+03 3.2171e-01 -3.8309e-02 1.000 8.6 10 8.6563e+03 3.1575e-01 -3.6648e-02 1.000 9.5 11 1.0853e+04 3.0963e-01 -3.4914e-02 1.000 10.5 12 1.3607e+04 3.0393e-01 -3.2820e-02 0.999 11.5 13 1.7061e+04 2.9772e-01 -3.0281e-02 1.000 12.5 14 2.1390e+04 2.9143e-01 -2.7832e-02 1.000 13.5 15 2.6819e+04 2.8524e-01 -2.4287e-02 1.000 14.4 16 3.3625e+04 2.7831e-01 -1.9335e-02 0.999 15.4 17 4.2159e+04 2.7209e-01 -1.3779e-02 1.000 16.4 18 5.2858e+04 2.6484e-01 -6.0846e-03 0.999 17.4 19 6.6272e+04 2.5688e-01 4.1042e-03 0.999 18.4 20 8.3091e+04 2.5016e-01 1.8241e-02 0.999 19.4 21 1.0418e+05 2.4365e-01 3.4986e-02 0.999 20.4 22 1.3062e+05 2.3610e-01 6.0023e-02 0.997 21.4 23 1.6377e+05 2.2889e-01 8.5631e-02 0.997 22.4 24 2.0533e+05 2.2829e-01 1.1664e-01 0.998 23.4 25 2.5743e+05 2.2316e-01 1.5516e-01 0.999 24.4 26 3.2277e+05 2.2232e-01 2.0472e-01 0.997 25.4 27 4.0468e+05 2.2098e-01 2.6878e-01 0.995 26.4 28 5.0738e+05 2.0258e-01 3.4947e-01 0.992 27.4 29 6.3614e+05 1.9242e-01 4.4202e-01 0.992 28.5 30 7.9759e+05 1.7662e-01 5.5756e-01 0.994 29.5 31 1.0000e+06 1.5337e-01 6.9919e-01 0.993 30.5 32 7.9759e+05 1.7692e-01 5.5753e-01 0.993 31.5 33 6.3614e+05 1.9149e-01 4.4283e-01 0.992 32.4 34 5.0738e+05 2.0257e-01 3.4793e-01 0.993 33.5 35 4.0468e+05 2.0842e-01 2.7402e-01 0.995 34.4 36 3.2277e+05 2.1187e-01 2.1308e-01 0.998 35.4 37 2.5743e+05 2.1993e-01 1.5778e-01 0.998 36.5 38 2.0533e+05 2.2545e-01 1.1929e-01 0.999 37.6 39 1.6377e+05 2.3144e-01 8.6229e-02 0.997 38.6 40 1.3062e+05 2.3499e-01 5.7053e-02 0.996 39.6 41 1.0418e+05 2.4046e-01 3.5362e-02 0.999 40.6 42 8.3091e+04 2.4781e-01 1.6862e-02 0.999 41.6 43 6.6272e+04 2.5527e-01 5.2198e-03 0.999 42.6 44 5.2858e+04 2.6278e-01 -5.8814e-03 1.000 43.5 45 4.2159e+04 2.6970e-01 -1.3697e-02 0.999 44.5 46 3.3625e+04 2.7714e-01 -1.9114e-02 0.999 45.5 47 2.6819e+04 2.8283e-01 -2.4309e-02 0.999 46.5 48 2.1390e+04 2.8954e-01 -2.8258e-02 1.000 47.5 49 1.7061e+04 2.9509e-01 -3.0504e-02 0.999 48.5 50 1.3607e+04 3.0105e-01 -3.2446e-02 1.000 49.5 51 1.0853e+04 3.0645e-01 -3.4713e-02 1.000 50.5 52 8.6563e+03 3.1271e-01 -3.6266e-02 1.000 51.4 53 6.9041e+03 3.1810e-01 -3.8181e-02 1.000 52.4 54 5.5066e+03 3.2358e-01 -3.9708e-02 1.000 53.3 55 4.3920e+03 3.2939e-01 -4.1495e-02 1.000 54.2 56 3.5030e+03 3.3529e-01 -4.3428e-02 1.000 55.1 57 2.7940e+03 3.4159e-01 -4.5300e-02 1.000 56.0 58 2.2284e+03 3.4812e-01 -4.7161e-02 1.000 56.9 59 1.7774e+03 3.5485e-01 -4.9375e-02 1.000 57.9 60 1.4176e+03 3.6201e-01 -5.1313e-02 1.000 58.8 61 1.1307e+03 3.6970e-01 -5.3293e-02 1.000 59.7 62 9.0179e+02 3.7704e-01 -5.5533e-02 1.000 60.6 63 7.1926e+02 3.8506e-01 -5.7373e-02 1.000 61.5 64 5.7367e+02 3.9324e-01 -5.8939e-02 1.000 62.4 65 4.5755e+02 4.0174e-01 -6.0492e-02 1.000 64.1 66 3.6494e+02 4.1107e-01 -6.2402e-02 1.000 66.0 67 2.9107e+02 4.2069e-01 -6.4106e-02 0.999 67.5 68 2.3215e+02 4.3118e-01 -6.6501e-02 0.998 68.9 69 1.8516e+02 4.3805e-01 -6.9636e-02 0.999 70.3 70 1.4768e+02 4.4719e-01 -7.3833e-02 0.999 71.8 71 1.1779e+02 4.5717e-01 -7.6702e-02 1.000 73.2 72 9.3947e+01 4.6961e-01 -8.1250e-02 0.999 74.7 73 7.4931e+01 4.8103e-01 -8.5096e-02 1.000 76.2 74 5.9538e+01 4.9363e-01 -8.9644e-02 1.000 77.8 75 4.6991e+01 5.0843e-01 -9.2945e-02 1.000 79.4 76 3.6825e+01 5.2417e-01 -9.6522e-02 1.000 81.1 77 2.8642e+01 5.4183e-01 -9.9961e-02 1.000 82.8 78 2.2099e+01 5.6018e-01 -1.0261e-01 1.000 84.7 79 1.6907e+01 5.8100e-01 -1.0465e-01 1.000 86.7 80 1.2819e+01 6.0342e-01 -1.0534e-01 1.000 88.9 81 9.6267e+00 6.2746e-01 -1.0144e-01 1.000 91.4 82 7.1569e+00 6.5170e-01 -9.5084e-02 1.000 94.3 83 5.2641e+00 6.7182e-01 -8.5941e-02 1.000 97.7 84 3.8284e+00 6.8667e-01 -7.6260e-02 1.000 101.7 85 2.7515e+00 7.0091e-01 -6.7177e-02 1.000 106.7 86 1.9531e+00 7.1236e-01 -6.0212e-02 1.000 113.2 87 1.3686e+00 7.2143e-01 -5.4380e-02 1.000 124.1 88 9.4639e-01 7.2718e-01 -5.1820e-02 1.000 136.7 89 6.4562e-01 7.3101e-01 -5.0840e-02 1.000 153.3 90 4.3451e-01 7.3433e-01 -5.2595e-02 1.000 177.7 91 2.8857e-01 7.4604e-01 -5.8908e-02 1.000 211.9 92 1.8924e-01 7.6729e-01 -6.8159e-02 1.000 258.1 93 1.2266e-01 7.7107e-01 -8.1158e-02 1.000 319.5 94 7.8703e-02 7.9544e-01 -1.0128e-01 1.000 409.6 95 5.0090e-02 8.1486e-01 -1.2813e-01 0.999 576.3 96 3.1698e-02 8.3853e-01 -1.6609e-01 1.000 761.4 97 2.0000e-02 8.6938e-01 -2.2297e-01 0.999 1030.0

Beim Ausführen des Codes wird folgender Plot ausgegeben:

alt text

Zwei Probleme treten auf. Zum einen werden zwei übereinander liegende Y-Achsen erstellt, jedoch soll es nur eine gemeinsame geben. Zum anderen liegt der erste Wert der blauen Linie nur auf der gleichen Höhe wie der erste Wert der grünen Linie. Diese sollen in einem Punkt liegen. Das Problem hierfür ist axis equal. Dieser Befehl soll beibehalten werden. Die zweite Linie (für X2 gegen Y) wurde nur geplottet um zu zeigen, dass die Werte der Frequenz (X2) nicht mit denen des Realteils (X1) übereinstimmen.

gefragt 21 Dez '16, 20:43

jukebox's gravatar image

jukebox
3125
Akzeptiert-Rate: 0%

bearbeitet 23 Dez '16, 08:23

saputello's gravatar image

saputello
11.1k154365

Willkommen auf TeXwelt!

(22 Dez '16, 07:55) saputello

Unabhängig von der eigentlichen Frage, sei noch darauf hingewiesen, dass compat=1.9 auf die Verwendung einer stark veralteten pgfplots-Version hindeutet. Aktuell ist bei MiKTeX und bei TeX Live bzw. MacTeX pgfplots 1.14 mit diversen Verbesserungen, die aber nur genutzt werden, wenn man auch compat=1.14 verwendet. Außerdem gehört das Setzen von compat unmittelbar hinter das Laden des Pakets. Das Laden von tikz ist nach dem Laden von pgfplots dagegen überflüssig.

(22 Dez '16, 08:54) saputello

Wenn Du keine zweite y-Achse willst, dann kannst Du diese natürlich mit axis y line=none entfernen:

Open in Online-Editor
\begin{filecontents*}{myData.txt}
    Number   a   b   c   Significance   Time/s 
   1      1.1307e+03       3.7337e-01       -5.3821e-02        1.000           0.0
   2      1.4176e+03       3.6739e-01       -5.1699e-02        1.000           2.1
   3      1.7774e+03       3.5992e-01       -4.9973e-02        1.000           3.0
   4      2.2284e+03       3.5299e-01       -4.7547e-02        1.000           4.0
   5      2.7940e+03       3.4617e-01       -4.5755e-02        1.000           4.9
   6      3.5030e+03       3.3947e-01       -4.4076e-02        1.000           5.8
   7      4.3920e+03       3.3355e-01       -4.1470e-02        1.000           6.7
   8      5.5066e+03       3.2729e-01       -4.0056e-02        1.000           7.7
   9      6.9041e+03       3.2171e-01       -3.8309e-02        1.000           8.6
  10      8.6563e+03       3.1575e-01       -3.6648e-02        1.000           9.5
  11      1.0853e+04       3.0963e-01       -3.4914e-02        1.000          10.5
  12      1.3607e+04       3.0393e-01       -3.2820e-02        0.999          11.5
  13      1.7061e+04       2.9772e-01       -3.0281e-02        1.000          12.5
  14      2.1390e+04       2.9143e-01       -2.7832e-02        1.000          13.5
  15      2.6819e+04       2.8524e-01       -2.4287e-02        1.000          14.4
  16      3.3625e+04       2.7831e-01       -1.9335e-02        0.999          15.4
  17      4.2159e+04       2.7209e-01       -1.3779e-02        1.000          16.4
  18      5.2858e+04       2.6484e-01       -6.0846e-03        0.999          17.4
  19      6.6272e+04       2.5688e-01        4.1042e-03        0.999          18.4
  20      8.3091e+04       2.5016e-01        1.8241e-02        0.999          19.4
\end{filecontents*}

\documentclass[paper=a4,ngerman,xcolor=dvipsnames]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[]{pgfplots}
\pgfplotsset{compat=1.14}
\usepackage{siunitx}

\pgfplotscreateplotcyclelist{mycolorlist}{
blue!01!green,every mark/.append style={fill=blue!10!black},mark=none\\
}
\pgfplotscreateplotcyclelist{mycolorlist2}{
blue!70!green,every mark/.append style={fill=blue!10!black},mark=none\\
}

\pgfplotsset{every axis label/.append style={font=\large}}
\pgfplotsset{every tick label/.append style={font=\large}}

\begin{document}
\begin{figure}
\begin{tikzpicture}

\begin{axis}[
grid=both, 
axis equal,
width=12cm, 
height=9cm,
xtick pos=left,
ytick pos=left,    
xlabel={x1}, ylabel={y1}, 
legend style={at={(0.97,0.03)},anchor=south east, cells={anchor=west}},
legend style={font=\footnotesize},
cycle list name=mycolorlist,
%ymin=-0.06,
%ymax=0.06,
%xmin=0.24,
%xmax=0.38,
]
\addplot table [x=b,y expr=-\thisrow{c}]{myData.txt};
\legend{Zyklus 0}
\end{axis}

\begin{semilogxaxis}[
width=12cm,
height=9cm,
cycle list name=mycolorlist2,
axis x line*=top,
axis y line=none,
xlabel={x2},
%ymin=-0.06,
%ymax=0.06,
%xmin=5E2,
%xmax=1E5,
]
\addplot table [y=c,x=a]{myData.txt};
\end{semilogxaxis}

\end{tikzpicture}
\end{figure}
\end{document}

Sinnvoller wäre ggf. beide y-Achsen identisch einzuteilen (siehe auskommentierte ymin- und ymax-Werte), wobei dann ggf. zusätzlich xmin- und xmax-Werte anzugeben sind, um die gewünschten Ausschnitte zu erhalten. Oder man fügt entsprechend der oberen x-Achse auch eine rechte y-Achse hinzu. Verändert man ymin für die zweite Kurve verschiebt sich diese natürlich vertikal. Ebenso kann man ggf. xmin verändern, um horizontal einen anderen Ausschnitt zu erhalten.

Permanenter link

beantwortet 22 Dez '16, 09:25

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%

bearbeitet 22 Dez '16, 09:29

Hallo, vorneweg möchte ich mich für die schnelle und umfassende Antworten bedanken! 'axis y line=none' erfüllt den Zeck zur Lösung des Problems der sich überlagernden Y-Achsen!

Deine Kurve weicht von meiner ab, da ich nur einen Teil aus myData.txt eingefügt habe. Ich wollte keine 100 Zeilen mit Daten hochladen.

Mein Ziel ist es einen Nyquistplot zu erzeugen. Dieser hat aber keine Übersicht über die Frequenz, deshalb die zweite X-Achse. Ich will also die zusammenhängenden Werte für x1,x2 und x wie folgt (exemplarisch) plotten: 'addplot table [x1=b,y expr=-thisrow{c},x2=a]{myData.txt};'

(22 Dez '16, 13:47) jukebox

So, der Daumen ist oben! Ich habe der Vollständigkeit halber den gesameten Datensatz hochgeladen und Marker eingefügt. Hat mein vorheriger Kommentar mein Ziel etwas verdeutlichen können?

(22 Dez '16, 15:04) jukebox

@jukebox: Mit dem Datensatz kann ich das im Bild gezeigte Problem nun unmittelbar nachvollziehen (und könnte theoretisch meine Antwort noch einmal anpassen, falls das notwendig wäre, was es wohl nicht ist, das Du das Prinzip offenbar verstanden hast). Vermutlich hätte es ebenso genügt, wenn Du stattdessen das Bild ausgetauscht und den Text auf das geänderte Bild angepasst hättest.

Für die physikalischen Informationen (die ebenfalls in der Frage selbst als Hintergrundinfo gut untergebracht wären) sei gedankt, aber sie sagen mir eher wenig. Das notwendige Wissen blieb 25 Jahre ungenutzt.

(23 Dez '16, 08:29) saputello

Eine Anpassung deiner Antwort wäre super. Wenn du im Code 'axis equal' auskommentierst siehst du die Grafik, wie ich sie am liebsten haben würde. Allerdings sollen die Y-Achse und X1-Achse gleich sein (also 'axis equal' enthalten). Ich hoffe, dass ich das wenigstens ein bisschen verständlich formuliert habe.

Das Problem mit den überlagernden y-Achsen haben ich verstanden.

(25 Dez '16, 17:17) jukebox
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×296
×6
×2

gestellte Frage: 21 Dez '16, 20:43

Frage wurde gesehen: 7,414 Mal

zuletzt geändert: 25 Dez '16, 17:17