Diagramme aus txt Datei mit Tikz erstellen

Tabellen und Grafiken erstellen und anordnen


LillyLa

Diagramme aus txt Datei mit Tikz erstellen

Beitrag von LillyLa »

Hallo liebe Latex-Experten,

ich hoffe sehr, dass ihr mir weiterhelfen könnt, denn irgendwie funktioniert nahezu gar nichts....
ich versuche gerade aus einer externen Txt-Datei ein Diagramm wiefolgt zu erstellen:

Erzeugen eines einfachen (und beschrifteten) Plots direkt in TikZ mit
geeigneten TikZ- und plot-Befehlen. --> die einzelnen Koordinaten nicht verbunden, sondern als vertikale Striche hochgehend von der x-Achse zum jeweiligen Koordinatenpunkt als x.
Dazu soll die Methode der kleinsten Quadrate angewendet werden, um mit einem geeigneten Koeffizient die Exponentialfunktion zu bestimmen,
sodass sie die Messreihe bestmöglich approximiert (Funktion in rot --> f(x) = 0;98e^x )
Skalierung um etwa in y-Richtung um den Faktor 0.1, in x-Richtung um den Faktor 2.

Leider funktioniert irgendwie gar nichts bei mir :'(

Hier die Werte aus txt-Datei, die importiert werden sollen

#x y
0 1.02
0.4 1.4470699567
0.8 1.3145625656
1.2 3.0877087381
1.6 3.2997446941
2 8.6107277819
2.4 11.6845669635
2.8 15.6224144325
3.2 28.7965542912
3.6 37.2662697548
4 50.5081500331


Hier mein bisheriger Code:
Stimmt überhaupt die document-class?
Muss dieses gnuplot installiert sein? Und wie muss ich es richtig in pdf-latex einfügen? So? pdflatex.exe" –enable-write18-synctex=1 -interaction=nonstopmode %.tex
\documentclass{article}

%Allgemeine usepackage
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{tikz}
\usepackage{pgfplots}

%Unter Einstellung pdfLatex folgendes hinzugefügt:
%--enable-write18
%-------------------------------------------------------------------
\begin{document}

%Aufgabe 1
\tikz[scale=0.1] {\draw[mark=x,smooth] plot file{latex_blatt_11-messwerte.txt}}%\draw[color=red] plot[id=exp] function{0.98*exp(x)}}
\end{document}

Ben
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Di 22. Jul 2014, 10:33
Wohnort: Homburg

Beitrag von Ben »

Hallo,

als \documentclass kannst du dir aussuchen, was zu deinem Dokument passt. In meinem Beispiel habe ich mal scrartcl verwendet mit der Option DinA4-Papier. Die Daten habe ich in einer Textdatei namens test.txt abgespeichert. Denke daran, das solange du nicht einen anderen Pfad definierst, sich die Datei im selben Ordner wie deine Latex-Datei befinden muss.

Hier mal mein Lösungsvorschlag:
\documentclass[paper=a4]{scrartcl}
 
\usepackage{pgfplots}
 
\begin{document}
	\begin{tikzpicture}
		\begin{axis}[ymin=0,xmin=0,xmax=4]
			\addplot [ycomb] table{test.txt};
			\addplot [red]{0.98*exp(x)};
		\end{axis}
	\end{tikzpicture}
\end{document}
Was du mit Skalierung meins, war mir jetzt nicht zu 100% klar. Wohl kaum die Unterteilung der Achse, das wären auf der y-Achse ja dann 500 makierungen...

Gruß

Ben

Gast

Beitrag von Gast »

Ben hat geschrieben:In meinem Beispiel habe ich mal scrartcl verwendet mit der Option DinA4-Papier.
Wobei das die Voreinstellung ist und deshalb auch entfallen kann.

BTW: So könnte dein Beispiel eventuell im Online-Editor direkt funktionieren:
\begin{filecontents*}{\jobname.txt}
#x y
0 1.02
0.4 1.4470699567
0.8 1.3145625656
1.2 3.0877087381
1.6 3.2997446941
2 8.6107277819
2.4 11.6845669635
2.8 15.6224144325
3.2 28.7965542912
3.6 37.2662697548
4 50.5081500331
\end{filecontents*}
\documentclass{scrartcl}
 
\usepackage{pgfplots}
\pgfplotsset{compat=newest}% der Onlineeditor hat nur 1.12, sonst würde ich hier
                           % direkt 1.13 einstellen
 
\begin{document}
\centering
   \begin{tikzpicture}
      \begin{axis}[ymin=0,xmin=0,xmax=4]
         \addplot [ycomb] table{\jobname.txt};
         \addplot [red]{0.98*exp(x)};
      \end{axis}
   \end{tikzpicture}
\end{document}

LillyLa

Beitrag von LillyLa »

Vielen lieben Dank für eure Hilfe und eure Ideen. :)

Also wie genau, dass mit der Skalierung gemeint ist, weiß ich auch nicht. Dort steht folgendes:

"Damit der Plot nicht zu groß wird, muss
skaliert werden: etwa in y-Richtung um den Faktor 0.1, in x-Richtung um den Faktor 2."
Ich dachte, dass die Achsen einfach zusammengeschrumpft bzw. gestreckt werden sollen. Irgendwie mit scale vielleicht?

Mit einem einfachen \tikz_Befehl kann man kein Diagramm erstellen, also ohne diese \usepackage{pgfplots}?
In meiner Vorlage ist das Diagramm oben und rechts nicht geschlossen und stattdessen sind an der x- und y-Achse Pfeile.
Diese sind dann auch beschriftet mit x und an der y-Achse "Messwert".

In einem nächsten Schritt soll dann das gleiche Diagramm mit dem Paket pgfplots erstellt werden in einer eine semilogyaxis-Umgebung für die y-Achse mit 10^0 10^1 usw.

Deshalb vermute ich, dass in dem ersten Schritt nur mit dem \tikz-Befehl gearbeitet werden soll....

Habt ihr dazu auch eine Idee?

Ben
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Di 22. Jul 2014, 10:33
Wohnort: Homburg

Beitrag von Ben »

Da es sich hier scheinbar um eine Hausarbeit handelt, und dir die Grundlagen fehlen, empfehle ich erstmal das Studium des passenden Wiki eintrages: http://www.golatex.de/wiki/Diagramme_mit_LaTeX und weiterführend ist die pgfplots-Dokumentation sehr hilfreich :wink:

Ein paar Stichworte was deine Achsenproblematik angeht
 
axis y line=left
axis x line=bottom
und
xlabel= 
ylabel=

LillyLa

Beitrag von LillyLa »

Dankeschön :)

Das hatte ich schon zum Glück gefunden, sonst wäre ich komplett aufgeschmissen.

leider haben sich damit allein nicht meine ganzen Fragen beantwortet. Bisher funktioniert leider nicht wirklich mehr und ich muss morgen fertig sein.

Ich würde mich wirklich sehr über Lösungsvorschläge freuen, zumal ich auch einige solcher Diagramme dann in meiner Bachelorarbeit einbringen könnte...

Antworten