Diagramm erstelln aus bestehender Tabelle

Tabellen und Grafiken erstellen und anordnen


Fedex998
Forum-Anfänger
Forum-Anfänger
Beiträge: 22
Registriert: Mo 3. Dez 2018, 20:17

Diagramm erstelln aus bestehender Tabelle

Beitrag von Fedex998 »

Hallo Zusammen vielleicht kann mir jemand helfen.

Ich habe eine Tabelle mit Messwerten und würde aus diesen gerne ein Diagramm erstellen. Nun möchte ich nicht unbedingt die ganzen Werte noch einmal Abtippen.
Kann man die Tabelle mit dem Diagramm verknüpfen und wie erstellt man dieses Diagramm?

Vielen Dank im Voraus.

das wäre meine Tabelle und aus diesen Messwerten hätte ich gerne ein simples Diagramm.
\begin {table}[ht] 
\begin{tabular}[ht]{p{0.15\textwidth}p{0.25\textwidth}p{0.15\textwidth}} 
\toprule 
\emph{U}/V & \multicolumn{2}{c}{\emph{I}/mA} \\ 
\cline{2-3} 
& 100 $\Omega$ & 330 $\Omega$\\ 
\midrule 
0 & 0 & 0\\ 
2 & 20,06 & 6,07\\ 
4 & 40,20 & 12,07\\ 
6 & 59,10 & 18,27\\ 
8 & 79,50 & 24,34\\ 
10 & 98,00 & 30,28\\ 
12 & 118,30 & 36,38\\ 
\bottomrule 
\end{tabular} 
\caption{Ohmsches Gesetz Versuch 1} 
\label{tab:Ohmsches Gesetz Versuch 1} 
\end{table} 

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

Beitrag von Bartman »

Dein Beispiel ist unvollständig.

Wenn die Tabelle und das Diagramm eine gemeinsame Datenquelle nutzen sollen, dann kann Dir das Paket pgfplotstable helfen.

Anderenfalls müsstest Du Deine Datenzeilen kopieren und die Formatierung etwas anpassen, damit sie von pgfplots benutzt werden können.

Bei der zweiten Variante kann die Tabelle beibehalten werden. Für ihren Entwurf möchte ich jedoch ein paar Änderungen empfehlen:
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[locale=DE]{siunitx}
\usepackage{booktabs}

\begin{document}
\begin{table}[htbp] 
	\centering
	\begin{tabular}{
		S[table-format=2]
		S[table-format=3.2]
		S[table-format=2.2]
	} 
	\toprule 
	$U$/\si{\V} & \multicolumn{2}{c}{$I$/\si{\mA}} \\ 
	\cmidrule{2-3} 
	& \SI{100}{\ohm} & \SI{330}{\ohm}\\ 
	\midrule 
	0 & 0 & 0\\ 
	2 & 20,06 & 6,07\\ 
	4 & 40,20 & 12,07\\ 
	6 & 59,10 & 18,27\\ 
	8 & 79,50 & 24,34\\ 
	10 & 98,00 & 30,28\\ 
	12 & 118,30 & 36,38\\ 
	\bottomrule 
	\end{tabular} 
	\caption{Ohmsches Gesetz Versuch 1} 
	\label{tab:Ohmsches Gesetz Versuch 1} 
\end{table} 
\end{document}

Fedex998
Forum-Anfänger
Forum-Anfänger
Beiträge: 22
Registriert: Mo 3. Dez 2018, 20:17

Beitrag von Fedex998 »

Hallo Vielen Dank erstmals für die Verbesserung meines Codes!!

Ich habe in der Zwischenzeit selbst ein wenig herumprobiert und bin sogar auf mein gewünschtes Ergebniss gekommen. Es hat mich zwar sehr gewundert, das es funktioniert hat.

Ist das so ellegant oder geht das besser?
%Tabellen nebeneinder gesetzt
\begin{table}[ht]
\setlength{\tabcolsep}{12pt}

\begin{minipage}[t]{0.45\textwidth}
\begin{tabular}[ht]{
						p{0.15\textwidth}
						p{0.25\textwidth}
						p{0.15\textwidth}
					}
\toprule	
$U$/\si{\V} & \multicolumn{2}{c}{$I$/\si{\mA}}\\
\cmidrule{2-3}
& \SI{100}{\ohm} & \SI{330}{\ohm}\\
\midrule
0 & 0 & 0\\
2 & 20,06 & 6,07\\
4 & 40,20 & 12,07\\
6 & 59,10 & 18,27\\
8 & 79,50 & 24,34\\
10 & 98,00 & 30,28\\
12 & 118,30 & 36,38\\
\bottomrule
\end{tabular}
\caption{Ohmsches Gesetz Versuch 1}
\label{tab:Ohmsches Gesetz Versuch 1}
\end{minipage}
\hfill
\begin{minipage}[t]{0.45\textwidth}
\begin{tabular}[ht]{
						p{0.15\textwidth}
						p{0.25\textwidth}
						p{0.15\textwidth}
						p{0.15\textwidth}
					}
\toprule	
$R$/\si{\ohm} & \multicolumn{3}{c}{$I$/\si{\mA}} \\
\cmidrule{2-4}
& 12V & 8V & 4V\\
\midrule
100 & 118,20 & 79,30 & 39,60\\
220 & 54,60 & 36,69 & 18,33\\
330 & 36,32 & 24,04 & 12,15\\
470 & 25,73 & 17,07 & 8,61\\
680 & 17,67 & 11,70 & 5,91\\
1000 & 12,10 & 8,03 & 4,05\\
\bottomrule
\end{tabular}
\caption{Ohmsches Gesetz Versuch 2}
\label{tab:Ohmsches Gesetz Versuch 2}
\end{minipage}
\end{table}

%Diagramm erstellt ebenfalls nebeneinander
\begin{filecontents}{Daten_Ohmsches_Gesetz_Versuch_1.csv}		
U   		R100		R330
0			0			0
2			20.06		6.07
4			40.2		12.07
6			59.1		18.27
8			79.5		24.34
10			98.0		30.28
12			118.3		36.32
\end{filecontents}

\begin{filecontents}{Daten_Ohmsches_Gesetz_Versuch_2.csv}
R   		U12V		U8V		U4V
100			118.20		79.30	39.60
220			54.06		36.69	18.33
330			36.32		24.04	12.15	
470			25.73		17.07	8.61	
680			17.67		11.70	5.91
1000		12.10		8.03	4.05
\end{filecontents}

\begin{figure}[htb]
\centering
\begin{minipage}[t]{0.45\textwidth}
\centering
 \begin{tikzpicture}
    \begin{axis}[
    				grid=major,
					xlabel = Spannung/V,
					ylabel = Strom/mA,	
       				domain=0.125:220,
        			xmin=0, xmax=15,
        			ymin=0, ymax=130,
        			samples=400,
        			axis y line=center,
       				axis x line=middle,
       				label style={at={(ticklabel cs:0.5)},anchor=near ticklabel,sloped}
    			]
        
        \addplot table [x=U, y=R100] {Daten_Ohmsches_Gesetz_Versuch_1.csv}node[above,pos=1] {$100 \Omega$};
        \addplot table [x=U, y=R330] {Daten_Ohmsches_Gesetz_Versuch_1.csv}node[above,pos=1] {$330 \Omega$};;
    \end{axis}
\end{tikzpicture}
\caption{Stromkennlinie in Abhängigkeit der Spannung}
\label{fig:Stromkennlinie in Abhängigkeit der Spannung}
\end{minipage}
\hfill
\begin{minipage}[t]{0.45\textwidth}
\centering
 \begin{tikzpicture}
    \begin{axis}[
    				grid=major,
					xlabel = Widerstand/$\Omega$,
					ylabel = Strom/mA,	
       				domain=0.125:220,
        			xmin=0, xmax=1100,
        			ymin=0, ymax=130,
        			samples=400,
        			axis y line=center,
       				axis x line=middle,
       				label style={at={(ticklabel cs:0.5)},anchor=near ticklabel,sloped}
    			]
        
        \addplot table [x=R, y=U12V] {Daten_Ohmsches_Gesetz_Versuch_2.csv}node[above,pos=0] {$12V$};
        \addplot table [x=R, y=U8V] {Daten_Ohmsches_Gesetz_Versuch_2.csv}node[above,pos=0] {$8V$};
        \addplot table [x=R, y=U4V] {Daten_Ohmsches_Gesetz_Versuch_2.csv}node[above,pos=0] {$4V$};;
    \end{axis}
\end{tikzpicture}
\caption{Stromkennlinie in Abhängigkeit des Widerstandes}
\label{fig:Stromkennlinie in Abhängigkeit des Widerstandes}
\end{minipage}
\end{figure}

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

Beitrag von Bartman »

Das Beispiel ist leider wieder nicht vollständig.

Widerspricht das Ergebnis des Spaltentyps S einer Vorgabe?

Bei zwei nebeneinander liegenden Tabellen oder Abbildungen kann das Paket subcaption eventuell nützlich sein.

Du könntest das optionale Argument der beiden minipages von t in b ändern. Dann liegen die Beschriftungen und die unteren Tabellenlinien in diesem Fall auf einer Höhe.

Die Option pos=1 ist bei den Knoten der \addplot-Befehle überflüssig.

Am Ende des letzten \addplot-Befehls in beiden Diagrammen genügt ein Semikolon.

Benutze bitte in den Tabellen wie auch in den Knoten der Diagramme durchgehend die Befehle von siunitx, damit die Zahlen und Einheiten nicht so aneinander kleben und die Einheiten aufrecht dargestellt werden. Du brauchst dann den mathematischen Modus nur noch, wenn dieser wirklich benötigt werden sollte.

Außerdem solltest Du das Tausendertrennzeichen in Deinen Diagrammen an Deine deutsche Dokumentsprache anpassen. Lass dazu Deinen PDF-Betrachter in der Dokumentation von pgfplots oder pgf/TikZ nach 1000 sep suchen. Für rationale Zahlen dürfte use comma interessant sein.
Zuletzt geändert von Bartman am Di 4. Dez 2018, 00:28, insgesamt 1-mal geändert.

Fedex998
Forum-Anfänger
Forum-Anfänger
Beiträge: 22
Registriert: Mo 3. Dez 2018, 20:17

Beitrag von Fedex998 »

Nein es Widerspricht nicht. Jedoch konnte ich mit meiner Weise schön die Spaltenbreite anpassen damit es schön aussieht.

Was meinen Sie mit nicht vollständig? Weil die Packages undso fehlen?

Das mit dem Tausendertrennzeichen habe ich nicht verstanden, den Rest habe ich angewendet. VIELEN DANK DAFÜR

Tut mir Leid ich bin blutiger Anfänger, ich habe gestern das erste mal mit LATEX gearbeitet und soll jetzt einen Laborbericht machen.

Fedex998
Forum-Anfänger
Forum-Anfänger
Beiträge: 22
Registriert: Mo 3. Dez 2018, 20:17

Beitrag von Fedex998 »

Außerdem ist mir noch nicht klar, wie ich das jetzt richtig mache?

mit filecontents funktioniert es zwar, aber wenn ich jetzt eine große Anzahl an Daten habe, dann möchte ich die nicht von meiner z.B Excel Datei abtippen.

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

Beitrag von Bartman »

Fedex998 hat geschrieben:Nein es Widerspricht nicht. Jedoch konnte ich mit meiner Weise schön die Spaltenbreite anpassen damit es schön aussieht.
Dafür bietet das Paket siunitx die Option table-column-width an.
Fedex998 hat geschrieben:Was meinen Sie mit nicht vollständig? Weil die Packages undso fehlen?
Ja, unter anderem.
Fedex998 hat geschrieben:Das mit dem Tausendertrennzeichen habe ich nicht verstanden,
Einer der Werte an der x-Achse des rechten Diagramms ist eine vierstellige Zahl.

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

Beitrag von Bartman »

Die Tabellenkalkulation müsste Textdateien (.txt und .csv) exportieren können.

Antworten