Seite 1 von 1

Figure / Tikz Grafik nicht zentriert

Verfasst: So 19. Jun 2016, 12:48
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}

Verfasst: So 19. Jun 2016, 13:02
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.

Verfasst: So 19. Jun 2016, 14:21
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?

Verfasst: So 19. Jun 2016, 14:54
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.

Verfasst: So 19. Jun 2016, 17:23
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}

Verfasst: So 19. Jun 2016, 18:38
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]