Messwerte Plotten und gerade durch den Mittelwert

Tabellen und Grafiken erstellen und anordnen


Patrick1990
Forum-Century
Forum-Century
Beiträge: 213
Registriert: Mo 18. Feb 2013, 07:56
Wohnort: Ilmenau

Messwerte Plotten und gerade durch den Mittelwert

Beitrag von Patrick1990 »

Hallo,
ich habe hier 6 Messwerte, diese weichen wie immer von der Theorie ab, ich möchte aber nun durch diese Messwerte eine gerade legen, oder jedenfalls an die Messwerte. Wie kann ich dort vorgeben?

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Das selbe Problem hattest du doch auch in einem anderen Post, warum kannst du nicht vormals Gelerntes auf neue Situationen übertragen?

Es kann auch sein, dass ich jetzt irgendetwas falsch verstehe, aber ...
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Patrick1990
Forum-Century
Forum-Century
Beiträge: 213
Registriert: Mo 18. Feb 2013, 07:56
Wohnort: Ilmenau

Beitrag von Patrick1990 »

Ja, du verstehst das nun falsch, vorher war es eine Gerade durch 2 Punkte.

Nun habe ich Messwerte gegeben, die von der Geraden abweichen (d.h. sie liegen darüber oder darunter), ich dachte es gibt eine Möglichkeit, dass eine Solche gerade durch den Mittelwert der Punkte automatisch erzeugt wird, ohne dass ich diese berechnen muss.

Wenn dies nicht geht, auch ok.
Ich dacht nur im Forum kann man seine Fragen stellen ;)

Patrick1990
Forum-Century
Forum-Century
Beiträge: 213
Registriert: Mo 18. Feb 2013, 07:56
Wohnort: Ilmenau

Beitrag von Patrick1990 »

Also ich habe hier ein Minimalbeispiel:
 \documentclass[ 
  11pt, 
  border=2pt 
]{standalone} 
\usepackage[T1]{fontenc} 
\usepackage{pgfplots,pgfplotstable} 
\usepackage[locale=DE]{siunitx} 
\usepackage{textcomp} 

\usepackage{filecontents} 
\begin{filecontents*}{Aufgabe_8.2.dat} 
U I 
0 0 
2 20,2
4 41
6 60,4
8 80,8
10 100,4
\end{filecontents*} 

\pgfplotsset{ 
  compat=newest, 
  xlabel near ticks, 
  ylabel near ticks 
} 

\begin{document} 
\begin{tikzpicture}[scale=1.5]
\begin{axis}[ 
axis lines=middle, 
xmin=0, 
xmax=13, 
xlabel={U / \si{\volt}}, 
ylabel={I / \si{\micro\ampere}} 
] 
\addplot[raw gnuplot,smooth] gnuplot { 
        f(x)=a*x+b; 
        fit f(x) 'Aufgabe_8.2.dat' using 1:2 via a,b; 
        plot [x=0:11] f(x); 
      }; 
    \end{axis} 
  \end{tikzpicture} 
\end{document}
Schön wäre es, wenn zusätzlich die Messwerte noch als Punkt im Koordinatensystem erscheinen und die Achsenbeschriftung direkt an den Achsen ist.

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

\documentclass[
  11pt,
  border=2pt
]{standalone}
\usepackage[T1]{fontenc}
\usepackage{pgfplots,pgfplotstable}
\usepackage[locale=DE]{siunitx}
\usepackage{textcomp}

\usepackage{filecontents}
\begin{filecontents*}{Aufgabe_8.2.dat}
#U I
0 0
2 20.2
4 41
6 60.4
8 80.8
10 100.4
\end{filecontents*}

\pgfplotsset{
  compat=newest,
  xlabel near ticks,
  ylabel near ticks
}

\begin{document}
\begin{tikzpicture}[scale=1.5]
\begin{axis}[
%axis lines=middle,
xmin=0,
xmax=13,
xlabel={U / \si{\volt}},
ylabel={I / \si{\micro\ampere}}
]
\addplot[raw gnuplot,smooth] gnuplot {
        f(x)=a*x+b;
        fit f(x) 'Aufgabe_8.2.dat' using 1:2 via a,b;
        plot [x=0:11] f(x);
      };
\addplot table {Aufgabe_8.2.dat};
    \end{axis}
  \end{tikzpicture}
\end{document} 

pgf erwartet Dezimalzahlen mit Dezimalpunkt, dabei solltest du bei der Bereitstellung deiner Daten achten. Weiterhin solltest du die Headerzeile in deinen Messfiles kennzeichnen (das Doppelkreuz # ist Kommentarsequenz von Gnuplot, wird aber auch durch pgf erkannt).
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Patrick1990
Forum-Century
Forum-Century
Beiträge: 213
Registriert: Mo 18. Feb 2013, 07:56
Wohnort: Ilmenau

Beitrag von Patrick1990 »

Vielen Dank.
Aber die vorherige Version des Koordinatensystems kann man nicht beibehalten?

Benutzeravatar
localghost
Forum-Meister
Forum-Meister
Beiträge: 826
Registriert: Di 8. Jul 2008, 15:40
Wohnort: Braunschweig

Bordmittel

Beitrag von localghost »

Lineare Regression kann pgfplots auch von Haus aus.
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{pgfplots,pgfplotstable}
\usepackage[locale=DE]{siunitx}

\usepackage{filecontents}
\begin{filecontents*}{Aufgabe-8.2.dat}
U I
0 0
2 20.2
4 41
6 60.4
8 80.8
10 100.4
\end{filecontents*}

\pgfplotsset{
  compat=newest,
  xlabel near ticks,
  ylabel near ticks
}

\begin{document}
  \begin{tikzpicture}[scale=1.5]
    \begin{axis}[
      axis lines=middle,
      xmin=0,
      xmax=10,
      xlabel={U / \si{\volt}},
      ylabel={I / \si{\micro\ampere}}
    ]
      \addplot+[only marks] table {Aufgabe-8.2.dat};
      \addplot[smooth] table [y={create col/linear regression={y=I}}] {Aufgabe-8.2.dat};
    \end{axis}
  \end{tikzpicture}
\end{document}
Der Fit per Gnuplot ist eigentlich nur nötig, wenn kompliziertere Funktionen gefittet werden sollen oder die gefittete Funktion über die eigentlich Messwerte hinaus geplottet werden soll. Gnuplot als Arbeitspferd zu benutzen schadet aber auch nicht.

Bei diesem Verfahren muss die erste Zeile des Datensatzes die Spaltenbeizeichnungen enthalten und darf nicht auskommentiert werden.


Thorsten
TeX und LaTeX, Fragen und Antworten – TeXwelt

¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
² System: TeX Live 2024, TeXworks

Patrick1990
Forum-Century
Forum-Century
Beiträge: 213
Registriert: Mo 18. Feb 2013, 07:56
Wohnort: Ilmenau

Beitrag von Patrick1990 »

DANKE Thorsten, aber wieso ist die Achsenbeschriftung so weit entfernt? Kann man da noch etwas Ändern?

Benutzeravatar
localghost
Forum-Meister
Forum-Meister
Beiträge: 826
Registriert: Di 8. Jul 2008, 15:40
Wohnort: Braunschweig

Position der Achsenbeschriftungen

Beitrag von localghost »

Patrick1990 hat geschrieben:[…] aber wieso ist die Achsenbeschriftung so weit entfernt? Kann man da noch etwas Ändern?
Kann ich so nicht nachvollziehen. Aber vielleicht gefällt dir das hier besser.
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{pgfplots,pgfplotstable}
\usepackage[locale=DE]{siunitx}

\usepackage{filecontents}
\begin{filecontents*}{Aufgabe-8.2.dat}
U I
0 0
2 20.2
4 41
6 60.4
8 80.8
10 100.4
\end{filecontents*}

\pgfplotsset{
  compat=newest,
  xlabel near ticks,
  ylabel near ticks
}

\begin{document}
  \begin{tikzpicture}[scale=1.5]
    \begin{axis}[
      axis x line=bottom,
      xmin=0,
      xmax=11,
      xlabel={U / \si{\volt}},
      axis y line=left,
      ymin=0,
      ymax=110,
      ylabel={I / \si{\micro\ampere}}
    ]
      \addplot+[only marks] table {Aufgabe-8.2.dat};
      \addplot[smooth] table [y={create col/linear regression={y=I}}] {Aufgabe-8.2.dat};
    \end{axis}
  \end{tikzpicture}
\end{document}
Zur Not kannst Du die Beschriftungen auch manuell positionieren.
TeX und LaTeX, Fragen und Antworten – TeXwelt

¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
² System: TeX Live 2024, TeXworks

Patrick1990
Forum-Century
Forum-Century
Beiträge: 213
Registriert: Mo 18. Feb 2013, 07:56
Wohnort: Ilmenau

Beitrag von Patrick1990 »

Danke, ja so gehts auch.

Gibt es hier noch eine Möglichkeit, den Verlauf der Kurve schöner anzeigen zu lassen?

\documentclass[ 
  11pt, 
  border=2pt 
]{standalone} 
\usepackage[T1]{fontenc} 
\usepackage{pgfplots,pgfplotstable} 
\usepackage[locale=DE]{siunitx} 
\usepackage{textcomp} 

 

\pgfplotsset{ 
  compat=newest, 
  xlabel near ticks, 
  ylabel near ticks 
} 

\begin{document} 
\begin{tikzpicture}[scale=1.5]
\begin{axis}[ 
axis x line=bottom, 
xmin=0, 
xmax=1.2,
axis y line=left,
ymin=0,
ymax=3.5, 
xlabel={$U$ in $\left[\si{\volt}\right]$}, 
ylabel={$I$ in$\left[\si{\milli\ampere}\right]$},
grid=major 
] 
\addplot+[color=red,mark=x,smooth] 
coordinates {
(1.06,	3) 
(0.99,	2.5) 
(0.9,		2) 
(0.805,	1.5) 
(0.71,	1) 
(0.605,	0.5) 
(0.6,		0.4)
(0.56,	0.3)
(0.53,	0.2)
(0.5,		0.1)
(0,		0)
};
\end{axis} 
\end{tikzpicture}
\end{document} 

Antworten