Hallo liebe LaTeX-Freunde,

ich würde gerne mittels dem datatool-Paket aus einer .dat-Datei eingelesene (ursprünglich) double Werte in einem tikzpicture als axis cs Wert verwenden. Beim Versuch wie im Minimalbsp.

Open in Online-Editor
\begin{filecontents*}{dumm.dat}
    1.0
    2.2
    3.3
    4.4
    5.5
\end{filecontents*}
\documentclass[margin=2mm]{standalone}
\usepackage{pgfplots}
\usepackage{datatool}
\DTLloaddb[noheader]{mylist}{dumm.dat}
\newcommand\listvalue{}
\newcommand\printlist[1]{%
    \DTLgetvalue\listvalue{mylist}{#1}{1}%
    \listvalue%
}
\begin{document}
    \begin{tikzpicture}
    \begin{axis}[xmin=0,xmax=2,ymin=0,ymax=2]
    \node at (axis cs:1, \printlist{4}){hossa};
    \end{axis}
    \end{tikzpicture}
\end{document}

bekomme ich jedoch die Folgende Fehlermeldung: ! Undefined control sequence.

Ich schätze mal, dass hier noch die eingelesenen Werte in einen double Wert (zurück) konvertiert werden müssen o.Ä. (bin kein Fachmann), im Internet habe ich leider keine Hilfe für mein Problem gefunden. Wäre super wenn sich hier Jemand meiner annehmen könnte!

gefragt 14 Mai '15, 11:33

Ross's gravatar image

Ross
355522
Akzeptiert: 86%

Ich habe jetzt irgendwie die Vermutung, dass das ein XY-Problem ist. Was ist Dein eigentliches Ziel?

(14 Mai '15, 15:56) esdd

Danke Dir für deine Antwort! Diese hat mein damaliges Problem gelöst gehabt! Leider scheine ich per Windows keine Kommentare mehr abschicken zu können??? Weshalb ich jetzt per Ubuntu schreibe!

(23 Mai '15, 03:27) Ross

Du kannst den Wert der y-Koordinate nicht erst bei der Koordinatenangabe ermitteln lassen. Möglich wäre dagegen

Open in Online-Editor
\begin{filecontents*}{dumm.dat}
    1.0
    2.2
    3.3
    4.4
    5.5
\end{filecontents*}
\documentclass[margin=2mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usepackage{datatool}
\DTLloaddb[noheader]{mylist}{dumm.dat}
\newcommand\coordvalue[2][coord]{%
  \expandafter\DTLgetvalue\expandafter{\csname#1\endcsname}{mylist}{#2}{1}
}
\begin{document}
    \begin{tikzpicture}
    \begin{axis}[xmin=0,xmax=2,ymin=0,ymax=6]
    \coordvalue[ycoord]{4}% <- Abspeichern des Wertes in der 4.Zeile als \ycoord
    \node at (1,\ycoord){hossa};
    \end{axis}
    \end{tikzpicture}
\end{document}

alt text

Wenn es darum geht, Koordinaten aus einer Datei zu verwenden, kann man aber auch die Möglichkeiten von pgfplots nutzen:

Open in Online-Editor
\begin{filecontents*}{dumm.dat}
    1.0
    2.2
    3.3
    4.4
    5.5
\end{filecontents*}
\documentclass[margin=2mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
    \begin{tikzpicture}
    \begin{axis}[xmin=0,xmax=2,ymin=0,ymax=6]
    \addplot[] table[x expr=1,y index=0,
      restrict expr to domain={\coordindex}{3:3}
      ]{dumm.dat}node{hossa};
    \end{axis}
    \end{tikzpicture}
\end{document}

Zu beachten ist dabei, dass die erste Zeile in der Datei den \coordindex 0 hat und die Spaltenzählung ebenfalls bei 0 beginnt. Das Ergebnis ist das gleiche wie oben.

Permanenter link

beantwortet 14 Mai '15, 16:06

esdd's gravatar image

esdd
14.2k53251

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×11
×5
×3

Frage gestellt: 14 Mai '15, 11:33

Frage wurde angeschaut: 2,107 Mal

Zuletzt aktualisiert: 23 Mai '15, 03:27