Hey!

Ich habe 10 Datensätze, jeweils habe ich die gleiche Frequenz und dazugehörig unterschiedliche reale und imaginäre Widerstandswerte (Z' und Z''). Ich möchte Z'' über Z' abbilden, also Z' als x-Achse. Theoretisch sind die Frenquenzwerte irrelevant, aber es sind nunmal keine gleichen x-Werte. Ich hätte gerne die Graphen in einem Diagramm, mit pgfplots komm ich nicht weiter.

haha, tut mir Leid! Ich werds mehr mathematisch beschreiben :D

Ich habe einige txt files mit 3 Spalten, die erste zeigt die Frequenz, die zweite einen Impedanzwert (realer elektrischer Widerstand), und die dritte Spalte den imaginären Widerstand (eigentlich irrelevant wie das heißt), hier nur ein ausschnitt:

Open in Online-Editor
freq. /Hz   Z1 /mohm    Z2 /mohm
1.000E+05   4.025E-01   3.786E-02
6.310E+04   4.320E-01   -2.213E-02
3.981E+04   4.613E-01   -6.642E-02
2.512E+04   4.989E-01   -9.858E-02
1.585E+04   5.430E-01   -1.220E-01
1.000E+04   5.904E-01   -1.385E-01
6.310E+03   6.396E-01   -1.458E-01
3.981E+03   6.876E-01   -1.501E-01
2.512E+03   7.341E-01   -1.512E-01
1.585E+03   7.786E-01   -1.503E-01
1.000E+03   8.204E-01   -1.511E-01
6.310E+02   8.604E-01   -1.557E-01
3.981E+02   9.010E-01   -1.650E-01
2.512E+02   9.468E-01   -1.798E-01

Jetzt möchte ich am liebsten ein Diagramm haben, mit Z1 als X-Achse und Z2 als Y-Achse. Die txt Datei ist automatisch mit tab's getrennt, sodass man die relativ problemlos einlesen können sollte.

Wenn ich pgfplots nutze, ließt er ja automatisch die erste Spalte als x-Achse ein, ich möchte aber die Spalte gerne festlegen. (sonst muss ich jedes per hand in excel öffnen und löschen usw -.-)

mein code:

Open in Online-Editor
\documentclass[paper=a4,12pt,version=last]{scrartcl}
\usepackage{pgfplots}

 \begin{document}
 \centering
\begin{tikzpicture}
    \begin{loglogaxis}[
    legend pos = outer north east,      
    axis lines = left,
    xlabel = $Z'$,
    ylabel = {$-Z''$},
    width=0.4\textwidth,
    height=0.4\textheight,
        title={Nyquist Plot},
        ]

    \pgfplotstableread{vari/0A.txt}
    \datatable
        \addplot table[y=Z1] {vari/0A.txt};
    %\addplot table[y=Z2] {vari/0A.txt};

        \legend{Z',Z''}

    \end{loglogaxis}

     \end{tikzpicture}
    \end{document}

Ich muss wahrscheinlich was anderes nutzen als pgfplotstableread um die x-Achse festzulegen? Ich hab quasi für jeden Datensatz unterschiedliche x-Werte, außer die Frequenz ist gleich, die sieht man aber im graphen nicht, man weiß nur in welcher Richtung der Graph zeitlich abgebildet wird:

alt text

Ich starte die Messung bei einer hohen Frequenz, und je geringer diese wird, desto mehr wandert der Graph nach rechts. (Für Interessierte: bei Stromänderung ändert sich Verlauf, Impedanzmessung einer Brennstoffzelle)

gefragt 04 Jun '16, 17:37

Jackhaeften's gravatar image

Jackhaeften
56238
Akzeptiert-Rate: 100%

bearbeitet 04 Jun '16, 19:10

Ich möchte nen neuen Radkasten an meine Gießkanne schweißen, theoretisch brauche ich dafür Feenstaub, praktisch sieht das aber anders aus. Das ganze soll auch im Vakuum funktioneren.

Ich persönlich verstehe nur Bahnhof, ich habe keine Ahnung wie so ein Datensatz aussieht, wie so ein Diagramm aussieht etc. Und ich bin bestimmt nicht allein. Du musst uns also schon ein wenig was zeigen (Code, Datensätze).

(04 Jun '16, 18:04) Johannes
1

Hey! Wie weit bist Du mit pgfplots gekommen? Zeig ruhig mal. Und vielleicht ein Bild des Diagramms handskizziert, als scan oder Foto, sowie Werte.

(04 Jun '16, 18:12) stefan ♦♦

Okay, sorry für die blöde Frage, stand nur ordentlich aufm Schlauch.

Um die Spalten auszuwählen, kann man als keys einfach in [] Klammern x und y festlegen. Hier der fertige code:

Open in Online-Editor
\documentclass[paper=a4,12pt,version=last]{scrartcl}
\usepackage{pgfplots}

\begin{document}
\centering
\begin{tikzpicture}
%to set legend use "legend style={at={(0.5,0.5)}}" after \begin{axis} in [] or just:
    \begin{axis}[
    legend pos = outer north east,      
    axis lines = left,
    xlabel = $Z'$,
    ylabel = {$-Z''$},
    width=\textwidth,
    height=0.8\textheight,
        title={Nyquist Plot},
        ]

        \addplot table[x=Z1, y=Z2] {0A.txt};
        \addplot table[x=Z1, y=Z2] {0.1A.txt};
        \addplot table[x=Z1, y=Z2] {0.2A.txt};
        \addplot table[x=Z1, y=Z2] {0.4A.txt};
        \addplot table[x=Z1, y=Z2] {0.5A.txt};
        \addplot table[x=Z1, y=Z2] {0.7A.txt};
        \addplot table[x=Z1, y=Z2] {0.8A.txt};
        \addplot table[x=Z1, y=Z2] {0.9A.txt};
        \addplot table[x=Z1, y=Z2] {1A.txt};

        \legend{0A,0.1A,0.2A,0.4A,0.5A,0.7A,0.8A,0.9A,1A}   
    \end{axis}

\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 04 Jun '16, 19:59

Jackhaeften's gravatar image

Jackhaeften
56238
Akzeptiert-Rate: 100%

2

Du darfst übrigens auch Deine eigene Antwort akzeptieren (Haken anklicken). Nur dafür stimmen (Daumen hoch) kannst Du nicht (dafür darfst Du auch für fremde Fragen und für fremde Antworten auf fremde Fragen stimmen).

(05 Jun '16, 09:01) saputello

Danke für die Info, bin ziemlich neu hier :)

(05 Jun '16, 20:09) Jackhaeften
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:

×730
×298
×39

gestellte Frage: 04 Jun '16, 17:37

Frage wurde gesehen: 7,574 Mal

zuletzt geändert: 05 Jun '16, 20:09