Archiv verlassen und diese Seite im Standarddesign anzeigen : *.csv Daten plotten
Hallo,
also, ich raufe mir hier echt die Haare damit. Ist das komplizierteste Problem, dass ich in Latex bisher angetroffen habe.
Ich nutze pgfplots und pgfplotstable, um externe Daten graphisch darzustellen zu lassen.
Beispiel:
\pgfplotstableread[col sep=semicolon]{test.csv}\table
\begin{tikzpicture}
\begin{axis}[
xlabel=Cost,
name=an axis,
ylabel=Error]
\addplot table[x=test1,y=test2] from \table;
\end{axis}
\end{tikzpicture}
Die *.csv (aus Excel-File erstellt) würde dann z.B. so ausehen:
test1;test2
2;5
6;67
9;45
67;40
Ich bekomme dann einen Fehler, dass die Spalte test1 nicht gefunden werden konnte. Scheinbar kann die Datei nicht gelesen/gefunden werden. Pfad simmt aber.
localghost
13-11-2008, 17:55
Liegt vielleicht an dem Semikolon als Spaltentrenner. Da muss wohl ein Komma hin (CSV, comma separated values). Abschnitt 6.2.1 (Providing Input Coordinates, S. 15ff) der Anleitung von pgfplots (http://ctan.org/pkg/pgfplots) hilft da vielleicht auch weiter.
MfG
Thorsten¹
Bringt mir ja nichts, wenn Excel das immer mit Semikolon abspeichert und man alles manuell ändern muss. Ist *.dat eigentlich vorteilhafter? Gibt es leider nicht unter Excel oder OpenOffice.
localghost
13-11-2008, 18:57
Bringt mir ja nichts, wenn Excel das immer mit Semikolon abspeichert und man alles manuell ändern muss. Ist *.dat eigentlich vorteilhafter? Gibt es leider nicht unter Excel oder OpenOffice.
Also, wenn ich eine Tabelle in OpenOffice.org 3.0 mit "Speichern unter ..." als CSV-Datei abspeichern will, werde ich im Dialog "Textexport" unter anderem auch nach dem Feldtrenner gefragt. Das Dialogfenster habe ich mal angehängt.
naja, gerade manuell musst du's ja nicht machen, kannst ja mittels sed oder so einfach alle Semikolons mit Kommas ersetzen.
sed:
sed -i "s/;/,/g" datei.csv
localghost
13-11-2008, 19:07
naja, gerade manuell musst du's ja nicht machen, kannst ja mittels sed oder so einfach alle Semikolons mit Kommas ersetzen. [...]
Tolle Idee ... wenn man unter Linux arbeitet. Die Erwähnung von Excel sagt mir aber, dass Bilbo das nicht tut.
Also, wenn ich eine Tabelle in OpenOffice.org 3.0 mit "Speichern unter ..." als CSV-Datei abspeichern will, werde ich im Dialog "Textexport" unter anderem auch nach dem Feldtrenner gefragt. Das Dialogfenster habe ich mal angehängt.
Läuft denn mein Code von oben, wenn du z.B. ein Minimalbeispiel verwendest?
localghost
13-11-2008, 19:23
Läuft denn mein Code von oben, wenn du z.B. ein Minimalbeispiel verwendest?
Das Minimalbeispiel (http://www.minimalbeispiel.de) müsstest Du schon selbst mal erstellen. Da bin ich ehrlich gesagt nicht genug motiviert. Ich sehe aber gerade, dass das gar nicht am Semikolon liegen kann, denn Du gibst es ja in der ersten Zeile deines Code-Schnipsels als Spaltentrenner an. Mit pgfplots (http://ctan.org/pkg/pgfplots)table bin ich noch nicht vertraut. Ich sehe mir das bei Gelegenheit mal an.
Das Mit pgfplots (http://ctan.org/pkg/pgfplots)table bin ich noch nicht vertraut. Ich sehe mir das bei Gelegenheit mal an.
Ja, damit habe ich auch schon rumprobiert. Allerdings ist pfgplotstable eher zur Darstellung von Tabellen durch externe Dateien im *.dat- oder *.csv Format. Ich will die Daten ja als Linien-, Balken-, Säulendiagramme ausgeben lassen und nicht als normale Tabelle darstellen. Dazu genügt mir auch ein Makro, welches wunderbar seinen Dienst leistet.
Tolle Idee ... wenn man unter Linux arbeitet. Die Erwähnung von Excel sagt mir aber, dass Bilbo das nicht tut.
Wenn er kein sed hat, kann afaik sogar das Notepad von Windows "Suchen und Ersetzen" ;)
edit: denn sed gibts auch für Windows: http://gnuwin32.sourceforge.net/packages/sed.htm
Wenn er kein sed hat, kann afaik sogar das Notepad von Windows "Suchen und Ersetzen" ;)
Denn sed gibts auch für Windows: http://gnuwin32.sourceforge.net/packages/sed.htm
Es liegt sowieso nicht am Semikolon oder Komma, denn beides funktioniert nicht.
localghost
13-11-2008, 20:00
Es liegt sowieso nicht am Semikolon oder Komma, denn beides funktioniert nicht.
Mach ein komplettes Minimalbeispiel (http://www.minimalbeispiel.de), gib gegebenenfalls eine Fehlermeldung mit an oder poste gleich die komplette Log-Datei als Anhang. Für eine einfache Tabelle kannst Du die filecontents*-Umgebung benutzen.
Wenn er kein sed hat, kann afaik sogar das Notepad von Windows "Suchen und Ersetzen" ;)
edit: denn sed gibts auch für Windows: http://gnuwin32.sourceforge.net/packages/sed.htm
Es könnte auch bei den UnxUtils (http://sourceforge.net/projects/unxutils) dabei sein.
René Geppert
14-11-2008, 00:43
so allgemein: wenn in windows die sprachoptionen auf englisch ändert, wenn beim export zu *.csv commas und nicht wie mit deutscher einstellung semikola als trenner verwendet
aber wie richtig geschrieben, kann man csv im editor öffnen und search and replace machen
zum thema plotten
csv lassen sich (im komma, NICHT semikolaformat) mit insheet wunderbat in stata einlesen
plotten ist da auch relativ easy und der export zu LaTeX als eps funktioniert wunderbar, z.B. mit beispielen hier: http://www.ats.ucla.edu/stat/Stata/latex/graph_stata_latex.htm
Plotten kann sicherlich auch PSTricks und GNU R
Nur falls er kein STATA hat
Syralist
14-11-2008, 10:09
Also folgendes funktioniert bei mir:
\begin{filecontents}{test.csv}
test1;test2
2;5
6;67
9;45
67;40
\end{filecontents}
\documentclass[a4paper,12pt]{scrartcl}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\pgfplotstableread[col sep=semicolon]{test.csv}\table
\begin{tikzpicture}
\begin{axis}[
xlabel=Cost,
name=an axis,
ylabel=Error]
\addplot table[] from {\table};
\end{axis}
\end{tikzpicture}
\end{document}
also ohne Angabe der Spaltennamen.
Es funktioniert auch, wenn ich die Spalten nicht mit Namen angebe sondern mit Index:
\addplot table[x index=0,y index=1] from {\table};
@Syralist
Ja, jetzt funktioniert es. Lag tatsächlich nur an den Spaltennamen, aber mit Index geht es einwandfrei. Geht sogar ohne filecontents.
Danke :)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.