Pgfplots: zwei Bilder nebenainander mit gleicher Größe

Tabellen und Grafiken erstellen und anordnen


monchi
Forum-Anfänger
Forum-Anfänger
Beiträge: 23
Registriert: Fr 21. Dez 2012, 13:24

Pgfplots: zwei Bilder nebenainander mit gleicher Größe

Beitrag von monchi »

Hi,

ich versuche gerade zwei Diagramme in meinem Text nebeneinander einzubinden. Hierbei will ich folgendes erreichen:

Die beiden Diagramme sollen unabhängig von der Achsenbeschriftung gleich groß sein und anschließend soll das "Gesamtkonstrukt" auf die Textbreite skaliert werden. Darüber hinaus würde ich die Grafiken gerne so skalieren, dass die Beschrieftung der Grafiken sich nicht ändern. Mein bisheriger Versuch sieht so aus:
\documentclass{scrartcl}
\usepackage{graphicx}
\usepackage{filecontents}
\usepackage{pgfplots}
\usepackage{tikz}
\usepackage{tikzscale}
\usepackage{subfigure}
\usepackage{blindtext}
\begin{document}
	
\blindtext
\begin{figure}[ht]%
	\def\MyDiagNameL{testdiagramL}
	\begin{filecontents}{\MyDiagNameL.tikz}
		\begin{tikzpicture}
		% Date aus Datei einlesen
		\begin{axis}[
		xlabel={X-Achse},
		ylabel={Y-Achse},
		minor tick num=1,
		try min ticks=5,
		scaled ticks=false,
		tick label style={/pgf/number format/fixed},
		xticklabel style={inner xsep=0pt}, 		% entfernt zusätzlichen
		xlabel style={inner ysep=0pt},			% weißen Rand
		ylabel style={inner ysep=0pt},			% um das Bild herum
		legend pos=south east,
		clip mode=individual				
		]
		\addplot [domain=-10:10, samples=100]{x^2};
		\end{axis}
		\end{tikzpicture}
	\end{filecontents}
	
	\def\MyDiagNameR{testdiagramR}
	\begin{filecontents}{\MyDiagNameR.tikz}
		\begin{tikzpicture}
		% Date aus Datei einlesen
		\begin{axis}[
		xlabel={X-Achse},
		ylabel={Y-Achse},
		minor tick num=1,
		try min ticks=5,
		scaled ticks=false,
		ylabel near ticks, yticklabel pos=right,
		tick label style={/pgf/number format/fixed},
		xticklabel style={inner xsep=0pt}, 		% entfernt zusätzlichen
		xlabel style={inner ysep=0pt},			% weißen Rand
		ylabel style={inner ysep=0pt},			% um das Bild herum
		legend pos=south east,
		clip mode=individual				
		]
		\addplot [domain=0:1000, samples=100]{sqrt(x)};
		\end{axis}
		\end{tikzpicture}
	\end{filecontents}
	
	
	\subfigure{\includegraphics[width=\textwidth*0.495]{\MyDiagNameL.tikz}} 
	\hfill
	\subfigure{\includegraphics[width=\textwidth*0.495]{\MyDiagNameR.tikz}} 
	
	\caption{Testdiagramm mit recht langer Bildunterschrift.}%
\end{figure}
 \blindtext
\end{document}
Insgesamt kommt mir das ganze doch recht kompliziert vor. darüber hinaus haben die beiden Diagramme eine unterschiedliche Größe. Ich denke das liegt daran dass die Achsenbeschriftung bzw. die Ticks unterschiedlich sind. Hat jemand ein Lösung für das Problem?

Stamm-

Möglicher Ansatz

Beitrag von Stamm- »

Die Ausmaße der Graphen sind bequem einstellbar über die Schlüssel width und height. Das kann sowohl global im Vorspann durch \pgfplotsset oder lokal als Option für die Umgebung axis erfolgen. Details dazu stehen in der Anleitung zu »pgfplots«, welche auch über die Kommandozeile abrufbar ist.
texdoc pgfplots
Anmerkungen:
  • Das Paket »subfigure« ist veraltet und sollte durch »subcaption« ersetzt werden.
  • Da »pgfplots« auf »PGF/TikZ« basiert, muss letzteres nicht explizit geladen werden.
  • Das Paket »tikzscale« ist möglicherweise nicht notwendig, da Zeichnungen durch den Schlüssel scale für die Umgebung tikzpicture auch skaliert werden können, ohne die Größe des Textes zu beeinflussen.

Stamm-

Korretur

Beitrag von Stamm- »

Vergiss die letzte Anmerkung.

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

Beitrag von esdd »

Gib bei \includegraphics nicht nur width sondern auch eine einheitliche Höhe \height vor.
   \subfigure{\includegraphics[width=\textwidth*0.495,height=7cm]{\MyDiagNameL.tikz}} 
   \hfill
   \subfigure{\includegraphics[width=\textwidth*0.495,height=7cm]{\MyDiagNameR.tikz}
Stelle mit xticklabel style={typeset ticklabels with strut} sicher, dass die xticklabel alle die gleiche Höhe und Tiefe haben und ergänze gegebenenfalls auch beim xlabel ein \strut, also xlabel={X-Achse\strut}. Wenn die xlabel wie in Deinem Fall bei beiden Diagrammen gleich sind, ist das allerdings nicht nötig.

\documentclass{scrartcl}
\usepackage{filecontents}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\usepackage{tikzscale}
\usepackage{subfigure}
\usepackage{blindtext}
\begin{document}
   
\blindtext
\begin{figure}[ht]%
\def\MyDiagNameL{testdiagramL}
\begin{filecontents}{\MyDiagNameL.tikz}
  \begin{tikzpicture}
  % Date aus Datei einlesen
  \begin{axis}[
  xlabel={X-Achse\strut},
  ylabel={Y-Achse},
  minor tick num=1,
  try min ticks=5,
  scaled ticks=false,
  tick label style={/pgf/number format/fixed},
  xticklabel style={inner xsep=0pt,typeset ticklabels with strut},       % entfernt zusätzlichen
  xlabel style={inner ysep=0pt},         % weißen Rand
  ylabel style={inner ysep=0pt},         % um das Bild herum
  legend pos=south east,
  clip mode=individual            
  ]
  \addplot [domain=-10:10, samples=100]{x^2};
  \end{axis}
  \end{tikzpicture}
\end{filecontents}
\def\MyDiagNameR{testdiagramR}
\begin{filecontents}{\MyDiagNameR.tikz}
  \begin{tikzpicture}
  % Date aus Datei einlesen
  \begin{axis}[
  xlabel={X-Achse\strut},
  ylabel={Y-Achse},
  minor tick num=1,
  try min ticks=5,
  scaled ticks=false,
  ylabel near ticks, yticklabel pos=right,
  tick label style={/pgf/number format/fixed},
  xticklabel style={typeset ticklabels with strut},
  xlabel style={inner ysep=0pt},         % weißen Rand
  ylabel style={inner ysep=0pt},         % um das Bild herum
  legend pos=south east,
  clip mode=individual            
  ]
  \addplot [domain=0:1000, samples=100]{sqrt(x)};
  \end{axis}
  \end{tikzpicture}
\end{filecontents}
   
   
  \subfigure{\includegraphics[width=\textwidth*0.495,height=7cm]{\MyDiagNameL.tikz}} 
  \hfill
  \subfigure{\includegraphics[width=\textwidth*0.495,height=7cm]{\MyDiagNameR.tikz}} 
  \caption{Testdiagramm mit recht langer Bildunterschrift.}%
\end{figure}
\blindtext
\end{document}
Bild

Gruß
Elke
Dateianhänge
gl_plotausr.PNG
gl_plotausr.PNG (30.6 KiB) 2265 mal betrachtet

Antworten