Seite 1 von 1

Diagramme aus txt Datei mit Tikz erstellen

Verfasst: So 10. Jul 2016, 22:50
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}

Verfasst: Mo 11. Jul 2016, 10:55
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

Verfasst: Mo 11. Jul 2016, 11:04
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}

Verfasst: Mo 11. Jul 2016, 16:19
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?

Verfasst: Mo 11. Jul 2016, 20:46
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=

Verfasst: Di 12. Jul 2016, 16:39
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...