
Ich habe eine Frage zu pgfplots
. Ich habe eine CSV-Datei mit xy Paaren. Die CSV-Datei ist sehr groß (>10k Einträge).
Ich möchte jetzt x
vs darstellen y
, aber nur bei bestimmten x-Koordinaten. Mit anderen Worten, ich möchte einen reduzierten Datensatz aus meiner ursprünglichen CSV-Datei verwenden.
Angenommen, x verläuft in der Datendatei über das Intervall [1,100]. Ich möchte ein Diagramm mit den x-Koordinaten erstellen x1=0, x2=18, x3=76 and x4=89
. Gibt es eine Möglichkeit, die entsprechenden y-Werte automatisch aus der CSV-Datei zu erhalten, oder muss ich diese Werte extern extrahieren (Excel, Octave, ...)?
Um es noch komplizierter zu machen: Angenommen, ich habe einen x-Wert bei x=12.1
und bei x=12.2
. Gibt es eine Möglichkeit, die nächstgelegene Punktposition (in diesem Fall x=12,1) zu verwenden, wenn wir am entsprechenden y-Wert bei x=12,11 interessiert sind?
Vielen Dank!
Antwort1
Dies sollte Ihnen den Einstieg erleichtern:
\documentclass{minimal}
\usepackage{csvsimple}
\usepackage{xifthen}
\newcommand{\execute}{\x,\y\par}
\begin{document}
\csvreader[head to column names]{test.csv}%
{}%empty block
{%x1=0, x2=18, x3=76 and x4=89
\ifthenelse{\x= 0}{\execute}{\relax}%
\ifthenelse{\x=18}{\execute}{\relax}%
\ifthenelse{\x=76}{\execute}{\relax}%
\ifthenelse{\x=89}{\execute}{\relax}%
}
\end{document}
Es wird von einer test.csv
Datei mit zwei Spalten ausgegangen, von denen die erste mit der Bezeichnung x
, die zweite mit der Bezeichnung gekennzeichnet ist y
.
Wenn X nicht immer eine Ganzzahl ist und Sie die Zwischenwerte überspringen möchten, müssen Sie vor dem Test runden.