Seite 1 von 4
Plotten einer linearen Funktion mit Vorgabe von 2 Punkten
Verfasst: Mo 15. Apr 2013, 01:02
von Patrick1990
Hallo, ich habe 2 Funktionswerte und möchte daraus eine U-I-Kennlinie erstellen, jedoch bin ich bisher nicht fündig geworden wie ich soetwas anstelle.
Ein Bild, wie es aussehen sollte ist hier zu finden:
http://s14.directupload.net/images/130415/vfq63otw.jpg
Hier ist ein Beispiel, welches ich erstellt habe, jedoch nicht so zufriedenstellend ist.
\documentclass{minimal}
\usepackage{tikz}
\usepackage{pgfplots}
%\usetikzlibrary{trees,snakes}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ xlabel=U in $V$,ylabel=I in $\mu A$]
\addplot[color=red,mark=x] coordinates {
(10,0)
(5.6,44)
(7.5,25)
(0,100)
};
\end{axis}
\end{tikzpicture}
\end{document}
Etwas fehlt
Verfasst: Mo 15. Apr 2013, 09:19
von localghost
Vielleicht solltest Du das Problem nochmal etwas genauer darstellen, denn aus dem Beispiel geht es nicht so recht hervor.
Besteht das Problem vielleicht darin, aus diesen zwei Punkten eine (lineare) Funktion zu erzeugen, die dann über einen gewissen Definitionsbereich gezeichnet werden soll? Ist also eine lineare Regression erwünscht?
Thorsten
Verfasst: Mo 15. Apr 2013, 09:27
von Patrick1990
Die lineare Funktion habe ich bereits bestimmt...in meinem Beispielfoto ist es y=f(x)=-1/10x+10.
Es soll so aussehen wie auf dem Beispielfoto, das Minimalbeispiel war nur eine Spielerei von mir.
Ich kann es noch einmal deuten:
Ich habe die Funktion, welche ca. von -10<=x<=110 (Mikroampere) gezeichnet werden soll ein normales x-y-Koordinatensystem.
Wichtig ist, das man sie Schnittpunkte mit der x- und y-Achse erkennt UND (falls dies möglich ist) auch ein Anstiegsdreieck unter der Funktionslinie, damit man sieht, dass dieser -1/10 ist.
Ansatz
Verfasst: Mo 15. Apr 2013, 11:19
von localghost
Nehmen wir nochmal dein Beispiel. Damit kann man die Vorgehensweise ja auch demonstrieren.
Die Funktion muss man nicht selbst bestimmen. Das kann
Gnuplot als Back-End für
pgfplots erledigen. Um die Schnittpunkte mit den Achsen zu sehen, müssen diese entsprechend konfiguriert werden (siehe Code). Das Dreieck für die Steigung lässt sich recht einfach im Koordinatensystem der Achsen (
axis cs) zeichnen.
\documentclass[
11pt,
border=2pt
]{standalone}
\usepackage[T1]{fontenc}
\usepackage{pgfplots,pgfplotstable}
\usepackage[locale=DE]{siunitx}
\usepackage{textcomp}
\usepackage{filecontents}
\begin{filecontents*}{kennlinie.dat}
U I
5.6 44
7.5 25
\end{filecontents*}
\pgfplotsset{
compat=newest,
xlabel near ticks,
ylabel near ticks
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=middle,
xmin=-2,
xmax=12,
xlabel={U / \si{\volt}},
ylabel={I / \si{\micro\ampere}}
]
\addplot[color=red,only marks,mark=x] table {kennlinie.dat};
\addplot[raw gnuplot,smooth,dashed] gnuplot {
f(x)=a*x+b;
fit f(x) 'kennlinie.dat' using 1:2 via a,b;
plot [x=-2:12] f(x);
};
\draw (axis cs:5.6,44) |- (axis cs:7.5,25);
\end{axis}
\end{tikzpicture}
\end{document}
Um die Funktion zu bestimmen, wurden die Daten mittels
filecontents in eine externe Datei ausgelagert.
Deine Wunschkonfiguration müsstest Du selbst erledigen. Die Einstellungen sollten sich aber auf den eigentlichen Fall übertragen lassen. Das lässt sich alles in den Anleitungen nachlesen. Natürlich kannst Du auch weitere Fragen stellen.
Verfasst: Mo 15. Apr 2013, 16:52
von Patrick1990
Danke, ich bekomme folgende Fehlermeldung:
! Package pgfplots Error: Sorry, the gnuplot-result file 'Namenlos-1.pgf-plot.t
able' could not be found. Maybe you need to enable the shell-escape feature? Fo
r pdflatex, this is '>> pdflatex -shell-escape'. You can also invoke '>> gnuplo
t <file>.gnuplot' manually on the respective gnuplot file..
Verfasst: Mo 15. Apr 2013, 17:23
von Patrick1990
was kann ich nun tun?
Verfasst: Mo 15. Apr 2013, 18:29
von Johannes_B
Du musst pdflatex mit der Option shell-escape bzw. enable-write18 aufrufen, geht über die Kommandozeile; oder du änderst die Einstellungen deines Editors.
Nun muss bloss noch Gnuplot installiert sein und der Ort dem System bekannt (Umgebungsvariable).
Viel Erfolg
Verfasst: Mo 15. Apr 2013, 18:35
von Patrick1990
Also so richtig Ahnung habe ich davon nicht, GNUplot ist installiert und funktioniert, und ich habe im editor
>> pdflatex -shell-escape
eingegeben und dann kam dieses enable-write18
aber was ist das jetzt noch mit dem ort?
Verfasst: Mo 15. Apr 2013, 18:52
von Johannes_B
Gib mal auf der Kommandozeile gnuplot ein, wenn gnuplot gestartet wird, kennt dein System den Ort des Programms.
Orientiere dich daran, wie der Programmaufruf in den Einstellungen des Editors momentan aussieht, und ergänze einfach die Option. Einfach mal ausprobieren, klingt nur schwer, isses aber nich.
Verfasst: Mo 15. Apr 2013, 18:58
von Patrick1990
Ich benutze TeXworks für Mac zur Zeit und ich sehe da nichts in den editoreinstellungen, was etwas mit programmaufruf zu tun hat
gnuplot startet, wenn ich es im terminal eingebe