Pgf-plots Daten aus csv auslesen

Tabellen und Grafiken erstellen und anordnen


LiWu
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Di 9. Jun 2015, 17:10

Pgf-plots Daten aus csv auslesen

Beitrag von LiWu »

Hallo ihr Lieben,

ich möchte gerne schöne Plots in Tex aus Excel Daten erstellen lassen und dabei csv. Dateien auslesen:

Folgendermaßen sieht mein Code aus:

Code: Alles auswählen

\documentclass[12pt,a4paper]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{graphicx}

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
		xlabel=Rotorgewicht,
		ylabel=Nennleistung]
		
	\addplot table [x=Rotorgewicht, y=Nennleistung] {Siemens.txt};

					
\end{axis}

\end{tikzpicture}

\end{document}
und das wäre momentan meine csv Datei dazu:

Code: Alles auswählen


Hersteller;Typ;Nennleistung;Rotorgewicht
Siemens; SWT1.362;1300;30
Siemens; SWT2.382;2300;54
Siemens; SWT2.3108;2300;60
Siemens; SWT2.393;2300;60
Siemens; SWT2.393;2300;60
Siemens; SWT3.0108;3000;60
Siemens; SWT3.0101;3000;60
Siemens; SWT3.2108;3200;60
Siemens; SWT3.2101;3200;60
Siemens; SWT2.3101;2300;62
Siemens; SWT2.393 Offshore;2300;62
Siemens; SWT2.3113;2300;66.7
Siemens; SWT3.0113;3000;67
Siemens; SWT3.2113;3200;67
Siemens; SWT2.3120;2300;70
Siemens; SWT3.6107 Offshore;3600;95
Siemens; SWT3.6107 Onshore;3600;95
Siemens; SWT3.6120 Offshore;3600;100
Siemens; SWT3.6120 Onshore;3600;100
Siemens; SWT4.0120;4000;100
Folgende Fehlermeldung wird mir ausgespuckt:
! Package pgfplots Error: Could not read table file ',' in 'search path=.'. In
case you intended to provide inline data: maybe TeX screwed up your end-of-line
s? Try `row sep=crcr' and terminate your lines with `\\' (refer to the pgfplots
table manual for details).
Habe ich die falschen Trennzeichen gewählt? Ich bin gerade mit meinem Latein am Ende...

Für Tips wäre ich dankbar:)

Viele Grüße

Gast

Beitrag von Gast »

Gleich am Anfang von Abschnitt 4.3.2 der [d]pgfplots[/d]-Anleitung, in dem \addplot table erklärt ist, ist auch das Format der Datentabelle an einem Beispiel gezeigt (großer, blauer Kasten). Und etwas später in dem Abschnitt sind dann auch Optionen wie col sep und row sep erklärt.

Nachlesen, verbessern und bei weiteren Problemen ggf. nochmal gezielt nachfragen.

Ratgeber

Kleine Änderung(en)

Beitrag von Ratgeber »

LiWu hat geschrieben:[…] Habe ich die falschen Trennzeichen gewählt? […]
Eine falsche Wahl ist das in diesem Fall nicht. Du musst \addplot mit der Option col sep nur mitteilen, dass das Trennzeichen kein Leerzeichen ist. Die Anleitung beschreibt die Anwendung. Problematisch werden dann noch Einträge wie ‹SWT1.362›, denn dabei handelt es sich ja nicht um einen darstellbaren Zahlenwert. Also eine Kopie der Datei anlegen und zumindest ‹SWT› komplett entfernen. Mit gängigen Texteditoren ließe sich auch gleich das Semikolon überall durch ein Leerzeichen ersetzen, was eine explizite Angabe eines Trennzeichens dann hinfällig werden lässt.

LiWu
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Di 9. Jun 2015, 17:10

Beitrag von LiWu »

Vielen Dank, ich habe es nochmal als Text mit Leerzeichen getrennt abgespeichert und es funktioniert. Dadurch, dass ich die Spalten x und y genau angesteuert habe, hat er die Textzellen ignoriert.

Ich habe die Anleitung gelesen, wurde nur irgendwie nicht so richtig schlau, ob ich nicht vielleicht grundlegend einen falschen Ansatz gefahren bin... jetzt geht es jedenfalls:)

Kleiner Tip für Leute die diesen Post vielleicht später lesen, Kommata in Bruchzahlen sollten auch durch Punkt ersetzt werden, weil sonst eine Fehlermeldung kommt.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2118
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Der Präambel sollte besser noch

Code: Alles auswählen

\pgfplotsset{
	compat=1.16,% https://texwelt.de/wissen/fragen/19163
	/pgf/number format/1000 sep=% mehr Informationen in pgfmanual.pdf
}
hinzugefügt werden.

Gewöhnlich werden mit den Beschriftungen der Achsen auch die Maßeinheiten (siunitx) angegeben.

Antworten