Figure / Tikz Grafik nicht zentriert

Tabellen und Grafiken erstellen und anordnen


Studentler

Figure / Tikz Grafik nicht zentriert

Beitrag von Studentler »

Hallo,

leider ist meine Grafik nicht direkt in der Mitte. In meinem Minimalbeispiel sind die beiden Grafiken wenigstens zentral übereinander, aber dennoch nicht in der Mitte der Seite. In meinem richtigen Text sind sie weder in der Mitte noch zueinander vertikal zentriert.

Hat jemand eine Idee woran das liegt? Ich vermute fast an den figure-Einstellungen [H] ? Aber wie löse ich das Problem? Danke für Hinweise!
\documentclass[a4paper,12pt,twoside]{report} 
\usepackage[utf8]{inputenc} 
\usepackage[ngerman]{babel}
\usepackage{siunitx} 
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{amsmath}

\begin{document} 
Das ist das erste Bild.
\begin{figure}[H]
  \centering
			\begin{tikzpicture}
					%\node at (3.5,2.8) {$\dot{m}_L$};
					%\node at (3.5,1.2) {$\theta_i$};
					\begin{axis}
					[   legend style={at={(0.15,0.95)},xshift=0.2cm,anchor=north west,nodes=right}  , 
					    legend entries ={Luftdurchsatz $\dot{m}_L$ ,Innentemperatur $\theta_i$},
							domain=-20:40,
							xmin=-20, xmax=40,
							ymin=20, ymax=30,
							samples=400,
							grid = major,
							xlabel = {Außentemperatur $\vartheta_a$ in \si{\celsius}},
							xtick={-20, -10, 0, 10, 20, 30, 40},
							axis y line*=left,
							ylabel = {Innentemperatur $\vartheta_i$ in \si{\celsius}},
					]
					\addplot+[mark=none,black,dashed,line width=1pt] {24.916-0.1145*\x+ 0.0035*\x*\x+\x*\x*\x*0.00007};
					\addplot+[mark=none,black,line width=1pt] {22.888-0.179*\x+ 0.0042*\x*\x+\x*\x*\x*0.00001};
					\end{axis}

					\begin{axis}[
							yticklabel pos=right,% yticklabel auf der rechten Seite
							axis x line=none ,
							axis y line*=right,
							ylabel = {Luftdurchsatz $\dot{m}_L$ in \si{\kilo\gram\per\minute}},
							ytick={0, 2, 4, 6, 8, 10},
							%y unit=\si{\percent},
							ymin=0, ymax=10,
					]
					\end{axis}
       \end{tikzpicture}
	\caption{Behaglichkeit der Innentemperatur und des Luftdurchsatzes für unterschiedliche Außentemperaturen} 
  \label{fig:Behaglichkeit} 
\end{figure}		

\begin{figure}[H]
  \centering
			\begin{tikzpicture}
					\begin{axis}
					[   legend style={at={(0,0.95)},xshift=0.2cm,anchor=north west,nodes=right}  , 
					    legend entries ={\SI[per-mode=symbol]{300}{\watt\per\metre\squared}, \SI[per-mode=symbol]{150}
{\watt\per\metre\squared} ,ohne Sonne},
							domain=10:40,
							xmin=0, xmax=40,
							ymin=-3, ymax=3,
							samples=5,
							grid = major,
							xlabel = {Innentemperatur $\vartheta_i$ in \si{\celsius}},
							xtick={0,10,20,30,40},
							axis y line=left,
							ylabel = {PMV},
					]
					\addplot+[mark=none,black,dashed,line width=1pt] {-4.4+0.25*\x};
					\addplot+[mark=none,black, dotted,line width=1pt] {-5+0.25*\x};
					\addplot+[domain=15:30][mark=none,black,line width=1pt] {-5.6+0.25*\x}; 
				\end{axis}
					
		\end{tikzpicture}
	\caption{PMV in Abhängigkeit von der Innentemperatur bei verschiedenen Sonneneinstrahlungen} 
  \label{fig:PMWSonne} 
\end{figure}	

\end{document}

DADABBI

Beitrag von DADABBI »

Dein Beispiel ergibt: ! LaTeX Error: Unknown float option `H'

Wenn ich den Fehler korrigiere, indem ich die falsche Option weglasse und auch den Textbereich und die BoundingBox der Abbildungen visualisieren, dann sehe ich dein Problem nicht:
\documentclass[a4paper,12pt,twoside]{report}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{amsmath}
\usepackage{showframe}% Seitenbereiche mit Kästen visualisieren
\begin{document}
Das ist das erste Bild.
\begin{figure}
\centering
\frame{\begin{tikzpicture}
%\node at (3.5,2.Cool {$\dot{m}_L$};
%\node at (3.5,1.2) {$\theta_i$};
\begin{axis}
[ legend style={at={(0.15,0.95)},xshift=0.2cm,anchor=north west,nodes=right} ,
legend entries ={Luftdurchsatz $\dot{m}_L$ ,Innentemperatur $\theta_i$},
domain=-20:40,
xmin=-20, xmax=40,
ymin=20, ymax=30,
samples=400,
grid = major,
xlabel = {Außentemperatur $\vartheta_a$ in \si{\celsius}},
xtick={-20, -10, 0, 10, 20, 30, 40},
axis y line*=left,
ylabel = {Innentemperatur $\vartheta_i$ in \si{\celsius}},
]
\addplot+[mark=none,black,dashed,line width=1pt] {24.916-0.1145*\x+ 0.0035*\x*\x+\x*\x*\x*0.00007};
\addplot+[mark=none,black,line width=1pt] {22.888-0.179*\x+ 0.0042*\x*\x+\x*\x*\x*0.00001};
\end{axis}

\begin{axis}[
yticklabel pos=right,% yticklabel auf der rechten Seite
axis x line=none ,
axis y line*=right,
ylabel = {Luftdurchsatz $\dot{m}_L$ in \si{\kilo\gram\per\minute}},
ytick={0, 2, 4, 6, 8, 10},
%y unit=\si{\percent},
ymin=0, ymax=10,
]
\end{axis}
\end{tikzpicture}}
\caption{Behaglichkeit der Innentemperatur und des Luftdurchsatzes für unterschiedliche Außentemperaturen}
\label{fig:Behaglichkeit}
\end{figure}

\begin{figure}
\centering
\frame{\begin{tikzpicture}
\begin{axis}
[ legend style={at={(0,0.95)},xshift=0.2cm,anchor=north west,nodes=right} ,
legend entries ={\SI[per-mode=symbol]{300}{\watt\per\metre\squared}, \SI[per-mode=symbol]{150}
{\watt\per\metre\squared} ,ohne Sonne},
domain=10:40,
xmin=0, xmax=40,
ymin=-3, ymax=3,
samples=5,
grid = major,
xlabel = {Innentemperatur $\vartheta_i$ in \si{\celsius}},
xtick={0,10,20,30,40},
axis y line=left,
ylabel = {PMV},
]
\addplot+[mark=none,black,dashed,line width=1pt] {-4.4+0.25*\x};
\addplot+[mark=none,black, dotted,line width=1pt] {-5+0.25*\x};
\addplot+[domain=15:30][mark=none,black,line width=1pt] {-5.6+0.25*\x};
\end{axis}

\end{tikzpicture}}
\caption{PMV in Abhängigkeit von der Innentemperatur bei verschiedenen Sonneneinstrahlungen}
\label{fig:PMWSonne}
\end{figure}

\end{document}
Eventuell willst du aber auch wissen, wie man die BoundingBox einer TikZ-Grafik anpassen kann.

Studentler

Beitrag von Studentler »

Danke für deine schnelle Antwort.

Naja wenn ich das [H] weglasse als Option für figure, dann wandern mir die beiden Grafiken irgendwo in meiner section hin. Teilweise sogar in einen neuen Abschnitt wo sie gar nichts zu suchen hat. Die Option [htb] bringt mir genauso wenig :-(

Was ist denn die richtige Methode. Anscheinend sollte man laut Internetrecherche dann auf die figure Umgebung verzichten wenn man es sowieso an einem bestimmten Ort platziert haben möchte? Was nutze ich denn dann?

DADABBI

Beitrag von DADABBI »

Da [H] in deinem Beispiel gar nicht unterstützt wird, nützt es dir auch nichts!

Was glaubst du, wozu ich mir die Mühe gemacht habe, den Link herauszusuchen? Wie wäre es, wenn du die verlinkte Seite einfach einmal lesen und dabei auch die Links in der Antwort beachten würdest? Da wird nämlich auch beantwortet wie man nicht gleitende Abbildungen oder Tabellen mit caption versieht.

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

Beitrag von Bartman »

@Studentler

Wie wäre es damit
\documentclass[a4paper,12pt,twoside]{report}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{caption} % <- eingefügt
\usepackage{siunitx}
%\usepackage{tikz} % Wird von pgfplots geladen
\usepackage{pgfplots}
\usepackage{amsmath}
\usepackage{showframe}% Seitenbereiche mit Kästen visualisieren

\pgfplotsset{compat=1.12} % 1.12 für den Online-Editor, sonst bitte 1.13. Außerdem wird dadurch die zweite Beschriftung der y-Achse tatsächlich auf der rechten Seite angezeigt und nicht mehr an der gleichen Stelle, wie die BEschriftung auf der linken Seite.

\sisetup{per-mode=symbol} % Falls die Einstellung für das ganze Dokument gelten soll

\begin{document}
%Das ist das erste Bild.
\begin{center}
\begin{minipage}{\textwidth}
\centering
\frame{\begin{tikzpicture}
%\node at (3.5,2.Cool {$\dot{m}_L$};
%\node at (3.5,1.2) {$\theta_i$};
\begin{axis}
[ legend style={at={(0.15,0.95)},xshift=0.2cm,anchor=north west,nodes=right} ,
legend entries ={Luftdurchsatz $\dot{m}_L$ ,Innentemperatur $\theta_i$},
domain=-20:40,
xmin=-20, xmax=40,
ymin=20, ymax=30,
samples=400,
grid = major,
xlabel = {Außentemperatur $\vartheta_a$ in \si{\celsius}},
xtick={-20, -10,..., 40}, % Gleiches Ergebnis, vermeidet aber Tippfehler
axis y line*=left,
ylabel = {Innentemperatur $\vartheta_i$ in \si{\celsius}},
]
\addplot+[mark=none,black,dashed,line width=1pt] {24.916-0.1145*\x+ 0.0035*\x*\x+\x*\x*\x*0.00007};
\addplot+[mark=none,black,line width=1pt] {22.888-0.179*\x+ 0.0042*\x*\x+\x*\x*\x*0.00001};
\end{axis}

\begin{axis}[
yticklabel pos=right,% yticklabel auf der rechten Seite
axis x line=none,
axis y line*=right,
ylabel = {Luftdurchsatz $\dot{m}_L$ in \si{\kg\per\minute}},
xmin=-20, xmax=40, % <- eingefügt
%ytick={0, 2,..., 10},
%y unit=\si{\percent},
ymin=0, ymax=10,
]
\end{axis}
\end{tikzpicture}}
\captionof{figure}{Behaglichkeit der Innentemperatur und des Luftdurchsatzes für unterschiedliche Außentemperaturen}
\label{fig:Behaglichkeit}
\end{minipage}
\end{center}

\begin{center}
\begin{minipage}{\textwidth}
\centering
\frame{\begin{tikzpicture}
\begin{axis}
[ legend style={at={(0,0.95)},xshift=0.2cm,anchor=north west,nodes=right} ,
legend entries ={\SI{300}{\watt\per\m\squared}, \SI{150}{\watt\per\m\squared} ,ohne Sonne},
domain=10:40,
xmin=0, xmax=40,
ymin=-3, ymax=3,
samples=5,
grid = major,
xlabel = {Innentemperatur $\vartheta_i$ in \si{\celsius}},
%xtick={0,10,20,30,40},
axis y line=left,
ylabel = {PMV},
]
\addplot+[mark=none,black,dashed,line width=1pt] {-4.4+0.25*\x};
\addplot+[mark=none,black, dotted,line width=1pt] {-5+0.25*\x};
\addplot+[domain=15:30][mark=none,black,line width=1pt] {-5.6+0.25*\x};
\end{axis}

\end{tikzpicture}}
\captionof{figure}{PMV in Abhängigkeit von der Innentemperatur bei verschiedenen Sonneneinstrahlungen}
\label{fig:PMWSonne}
\end{minipage}
\end{center}

\end{document}

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Eventuell suchst Du auch ... pgfplots Diagramme übereinander ausrichten? Dann müsstest Du bei den tikzpicture Umgebungen jeweils die Optionen trim axis left und trim axis right angeben, also
\begin{tikzpicture}[trim axis left, trim axis right]

Antworten