PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pgfplotstable: Kann column name nicht finden



alexraasch
21-09-2009, 14:18
Hallo,

wiedermal ein Problem mit pgfplots (version 1.2.2). Ich hab schon den ganzen Vormittag daran gesessen. :mad:

Also, hier das Minimalbeispiel:


\documentclass{scrartcl}
\usepackage{tikz, pgfplots}

\begin{filecontents}{g.dat}
Monat,Fehlerhaft,Fehlerfrei
1,22,78
2,31,69
3,26,74
4,14,86
5,17,83
6,25,75
7,25,75
8,30,70
9,,
10,,
11,,
12,,
\end{filecontents}

\begin{document}
\pgfplotstableread[col sep=comma]{g.dat}\tabelle
% Geht:
\pgfplotstabletypeset[columns={Monat,Fehlerhaft}]\tabelle
% Geht nicht:
\pgfplotstabletypeset[columns={Monat,Fehlerfrei}]\tabelle
% Geht:
\pgfplotstabletypeset[columns={[index]0, [index]2}]\tabelle
\end{document}


Wenn ich die Spalte "Fehlerfrei" ausgeben will, erhalte ich die Meldung: "! Package pgfplots Error: Sorry, could not retrieve column 'Fehlerfrei' from table 'g.dat'. Please check spelling (or introduce name aliases).." Ich habe auch schon versucht, eine externe Datei zu verwenden. Hat aber auch nicht geholfen. Das Ansprechen der Spalten über die Indizes funktioniert jedoch.

alexraasch
21-09-2009, 16:16
Kann bitte mal jemand mein Beispiel ausprobieren, ob es bei ihm/ihr durchläuft?

Bilbo
21-09-2009, 16:21
Nein, funktioniert nicht. Tabelle "Fehlerfrei" kann nicht gefunden werden.

Stefan_K
21-09-2009, 16:45
Dito, mit pgfplots (http://pgfplots.net) 1.2.2 und TeX Live 2009.

Stefan

u_fischer
21-09-2009, 16:48
Sieht mir nach einem Bug aus, bzw. wenigstens nach einen Dokumentationsfehler. pgfplots scheint das Zeilenende nicht als Spaltenende zu erkennen. Mit einem zusätzlichen Komma am Ende jeder Zeile geht es wieder.

alexraasch
21-09-2009, 22:09
Ja, das habe ich auch gerade herausgefunden. :eek: Komisch, aber wenn das wirklich ein Bug ist, müsste das doch schon vorher mal aufgefallen sein. Ich hatte es auch mit pgfplots 1.1 getestet, selbes Ergebnis.

RungeZipperer
22-09-2009, 09:07
Habe das gleiche Problem bei pgfplots und es sollte reichen, die erste Zeile mit % abzuschließen (jedenfalls dann, wenn ich den Inhlat in einer externen Datei gespeichert habe):



Monat,Fehlerhaft,Fehlerfrei%
1,22,78
2,31,69
3,26,74
4,14,86
5,17,83
6,25,75
7,25,75
8,30,70
9,,
10,,
11,,
12,,

alexraasch
23-09-2009, 11:16
Danke für den Hinweis. Das geht übrigens auch mit {filecontents}, habs gerade probiert. Kennst Du Dich etwas besser mit pgfplots aus? Ich habe da noch ein paar Probleme.

Ich würde z.B. gerne den Durchschnitt und die Summe von Spalten berechnen können und der Tabelle hinzufügen. Aus der Anleitung wurde ich diesbezüglich nicht so richtig schlau. Kann man auch einzelne Werte aus der externen Datei lesen und einem Makro zuweisen?

alexraasch
24-09-2009, 06:57
Ich habe jetzt herausgefunden, dass das Problem nur auftritt, wenn man als Trennzeichen kein Whitespace verwendet:



\documentclass{scrartcl}


\usepackage{tikz, pgfplots}

% \begin{filecontents}{test.dat}
% level,dof,error1,error2,info,{grad(log(dof),log(er ror2))},quot(error1)
% 1,4,2.50000000e-01,7.57858283e-01,48,0,0
% 2,16,6.25000000e-02,5.00000000e-01,25,-3.00000000e-01,4
% 3,64,1.56250000e-02,2.87174589e-01,41,-3.99999999e-01,4
% 4,256,3.90625000e-03,1.43587294e-01,8,-5.00000003e-01,4
% 5,1024,9.76562500e-04,4.41941738e-02,22,-8.49999999e-01,4
% 6,4096,2.44140625e-04,1.69802322e-02,46,-6.90000001e-01,4
% 7,16384,6.10351562e-05,8.20091159e-03,40,-5.24999999e-01,4
% 8,65536,1.52587891e-05,3.90625000e-03,48,-5.35000000e-01,3.99999999e+00
% 9,262144,3.81469727e-06,1.95312500e-03,33,-5.00000000e-01,4.00000001e+00
% 10,1048576,9.53674316e-07,9.76562500e-04,2,-5.00000000e-01,4.00000001e+00
% \end{filecontents}

\begin{filecontents}{test.dat}
level dof error1 error2 info {grad(log(dof) log(error2))} quot(error1)
1 4 2.50000000e-01 7.57858283e-01 48 0 0
2 16 6.25000000e-02 5.00000000e-01 25 -3.00000000e-01 4
3 64 1.56250000e-02 2.87174589e-01 41 -3.99999999e-01 4
4 256 3.90625000e-03 1.43587294e-01 8 -5.00000003e-01 4
5 1024 9.76562500e-04 4.41941738e-02 22 -8.49999999e-01 4
6 4096 2.44140625e-04 1.69802322e-02 46 -6.90000001e-01 4
7 16384 6.10351562e-05 8.20091159e-03 40 -5.24999999e-01 4
8 65536 1.52587891e-05 3.90625000e-03 48 -5.35000000e-01 3.99999999e+00
9 262144 3.81469727e-06 1.95312500e-03 33 -5.00000000e-01 4.00000001e+00
10 1048576 9.53674316e-07 9.76562500e-04 2 -5.00000000e-01 4.00000001e+00
\end{filecontents}

\begin{document}
% Geht nicht:
%\pgfplotstabletypeset[col sep=comma,columns={level,quot(error1)}]{test.dat}
% Geht:
\pgfplotstabletypeset[columns={level,quot(error1)}]{test.dat}
\end{document}

alexraasch
24-09-2009, 07:05
Ich habe gerade auf der pgfplots-Sourceforge-Seite gesehen, dass mein Bug Report geschlossen wurde und ein Patch erstellt wurde. Als Lösung wurde dort auch angeboten, ein % am Zeilenende zu schreiben.