带有颜色图边界框的 Tikz 轴与其他边界框不对齐

带有颜色图边界框的 Tikz 轴与其他边界框不对齐

我在这里的最后一个问题是关于 tikz 轴与其他图片居中对齐。我得到了一个很好的答案。这个问题类似,但通过给定示例中的颜色图扩展了问题。

我想要将如下所示的 tikz-pgf-Graphs 组合起来,使其与主图对齐(在本例中为左侧图)。我使用 pgfplot-Manual 中“4.2.8 使用外部图形作为绘图源”一章中所述的外部绘图。为简单起见,我删除了最小示例中的图片。

我最后一次邮政我了解到,我可以使用“向左修剪轴,向右修剪轴”将图形与其他居中图片对齐。当然,这不适用于我示例中的色图。我必须使用外部创建的颜色图,因为 tikz 版本生成的文件太大了,正如我的观点。

如何缩小左侧图的边界框?顺便问一下,这是定位的正确方法吗?或者您有什么建议?

例子:

\documentclass{scrartcl} % Dokumentenklasse
\usepackage[decimalsymbol=comma]{siunitx} % SI-Einheiten einheitlich setzen

\usepackage{pgfplots} % Import der Plots aus Matlab
\usepackage{tikz} % Import der Plots aus Matlab
\usetikzlibrary{plotmarks} % Import der Plots aus Matlab

\newlength\fheight % Plots aus Matlab immer gleich gross
\newlength\fwidth % Plots aus Matlab immer gleich gross
\setlength\fheight{6cm} % Plots aus Matlab immer gleich gross
\setlength\fwidth{8cm} % Plots aus Matlab immer gleich gross

\pgfplotsset{ % Komma statt Punkt als Dezimaltrennzeichen
  x tick label style={/pgf/number format/use comma},
  y tick label style={/pgf/number format/use comma}}

\listfiles

\begin{document}
My pgf version is: \pgfversion 

\begin{figure}[!htb]
\begin{center}
\begin{tikzpicture}[]
\begin{axis}[
name=plot1,
scale only axis,
width=\fwidth,
height=\fheight,
xmin=0, xmax=2,
ymin=0, ymax=2,
xlabel={$x/\SI{}{\micro\meter}$},
ylabel={$y/\SI{}{\micro\meter}$},
axis on top]
% \addplot graphics [xmin=0, xmax=22,
% ymin=0, ymax=2] {../versuche/b_v610/step36_ende/ende_afm/detail_afm.eps};
\end{axis}
\hspace{10mm}

\begin{axis}[
axis on top,
at=(plot1.right of south east), anchor=left of south west,
width=0.0675676\fwidth, height=1\fheight,
scale only axis,
xmin=0, xmax=1,
ymin=-30, ymax=50,
xtick=\empty, yticklabel pos=left,
ylabel={$h(x,y)/\SI{}{\nano\meter}$}] 
% \addplot graphics [xmin=0, xmax=1, ymin=-30, ymax=50]
% {../versuche/b_v610/step36_ende/ende_afm/detail_afm-colorbar1.eps};
\end{axis}
\end{tikzpicture}
\end{center}
\end{figure}

\begin{figure}[!htb]
\begin{center}
\begin{tikzpicture}
\begin{axis}[
name=plot1,
scale only axis,
width=\fwidth,
height=\fheight,
xmin=0, xmax=5,
ymin=0, ymax=5,
xlabel={$x$},
ylabel={$\sum_i x^2$},
axis on top]
% \addplot graphics [xmin=0, xmax=22,
% ymin=0, ymax=2] {../versuche/b_v610/step36_ende/ende_afm/detail_afm.eps};
\end{axis}
\end{tikzpicture}
\end{center}
\end{figure}

\end{document}

答案1

您仍然可以使用trimTikZ 的功能:trim axis left只是 的简写trim left=(current axis.west)。由于您可以命名轴,因此可以指定要使用哪个轴进行修剪。对于您的情况,您可以tikzpicture使用修剪上部trim left=(plot1.west),将小侧图命名为,并使用plot2修剪下部tikzpicturetrim left=(plot1.west),trim right=(plot2.east)。在这种情况下,您添加下方地块右侧的空间,因此它看起来与上方两块地块的宽度相同。

在此处输入图片描述

\documentclass{scrartcl} % Dokumentenklasse
\usepackage[decimalsymbol=comma]{siunitx} % SI-Einheiten einheitlich setzen

\usepackage{pgfplots} % Import der Plots aus Matlab
\usepackage{tikz} % Import der Plots aus Matlab
\usetikzlibrary{plotmarks} % Import der Plots aus Matlab

\newlength\fheight % Plots aus Matlab immer gleich gross
\newlength\fwidth % Plots aus Matlab immer gleich gross
\setlength\fheight{6cm} % Plots aus Matlab immer gleich gross
\setlength\fwidth{8cm} % Plots aus Matlab immer gleich gross

\pgfplotsset{ % Komma statt Punkt als Dezimaltrennzeichen
  x tick label style={/pgf/number format/use comma},
  y tick label style={/pgf/number format/use comma}}

\listfiles

\begin{document}
My pgf version is: \pgfversion 

\begin{figure}[!htb]
\centering
\begin{tikzpicture}[trim left=(plot1.west)]
\begin{axis}[
name=plot1,
scale only axis,
width=\fwidth,
height=\fheight,
xmin=0, xmax=2,
ymin=0, ymax=2,
xlabel={$x/\SI{}{\micro\meter}$},
ylabel={$y/\SI{}{\micro\meter}$},
axis on top]
% \addplot graphics [xmin=0, xmax=22,
% ymin=0, ymax=2] {../versuche/b_v610/step36_ende/ende_afm/detail_afm.eps};
\end{axis}
\hspace{10mm}

\begin{axis}[
name=plot2,
axis on top,
at=(plot1.right of south east), anchor=left of south west,
width=0.0675676\fwidth, height=1\fheight,
scale only axis,
xmin=0, xmax=1,
ymin=-30, ymax=50,
xtick=\empty, yticklabel pos=left,
ylabel={$h(x,y)/\SI{}{\nano\meter}$}] 
% \addplot graphics [xmin=0, xmax=1, ymin=-30, ymax=50]
% {../versuche/b_v610/step36_ende/ende_afm/detail_afm-colorbar1.eps};
\end{axis}
\end{tikzpicture}
\end{figure}

\begin{figure}[!htb]
\centering
\begin{tikzpicture}[trim left=(plot1.south west),trim right=(plot2.south east)]
\begin{axis}[
name=plot1,
scale only axis,
width=\fwidth,
height=\fheight,
xmin=0, xmax=5,
ymin=0, ymax=5,
xlabel={$x$},
ylabel={$\sum_i x^2$},
axis on top]
% \addplot graphics [xmin=0, xmax=22,
% ymin=0, ymax=2] {../versuche/b_v610/step36_ende/ende_afm/detail_afm.eps};
\end{axis}
\end{tikzpicture}
\end{figure}

\end{document}

答案2

如果两个图必须放在一起,则可以将它们括在tabular

\begin{figure}[!htb]
\centering
\begin{tabular}{@{}l@{}}
\begin{tikzpicture}[]
\begin{axis}[
name=plot1,
scale only axis,
width=\fwidth,
height=\fheight,
xmin=0, xmax=2,
ymin=0, ymax=2,
xlabel={$x/\SI{}{\micro\meter}$},
ylabel={$\vphantom{\sum}y/\SI{}{\micro\meter}$},
axis on top]
% \addplot graphics [xmin=0, xmax=22,
% ymin=0, ymax=2] {../versuche/b_v610/step36_ende/ende_afm/detail_afm.eps};
\end{axis}
\hspace{10mm}%
\begin{axis}[
axis on top,
at=(plot1.right of south east), anchor=left of south west,
width=0.0675676\fwidth, height=1\fheight,
scale only axis,
xmin=0, xmax=1,
ymin=-30, ymax=50,
xtick=\empty, yticklabel pos=left,
ylabel={$h(x,y)/\SI{}{\nano\meter}$}]
% \addplot graphics [xmin=0, xmax=1, ymin=-30, ymax=50]
% {../versuche/b_v610/step36_ende/ende_afm/detail_afm-colorbar1.eps};
\end{axis}
\end{tikzpicture}
\\ % end of first row
\begin{tikzpicture}
\begin{axis}[
name=plot1,
scale only axis,
width=\fwidth,
height=\fheight,
xmin=0, xmax=5,
ymin=0, ymax=5,
xlabel={$x$},
ylabel={$\sum_i x^2$},
axis on top]
% \addplot graphics [xmin=0, xmax=22,
% ymin=0, ymax=2] {../versuche/b_v610/step36_ende/ende_afm/detail_afm.eps};
\end{axis}
\end{tikzpicture}
\end{tabular}
\end{figure}

注意\vphantom{\sum}第一个图的 ylabel,以确保正确对齐。

答案3

这是我通过您的回答发现的:

问题是,

trim axis left, trim axis right

表现得像

trim right=(plot2.east), trim left=(plot2.west)

而不是削减主线情节。

我将颜色条命名为“plot2”并使用以下修剪命令:

trim right=(plot1.east), trim left=(plot1.west)

带有文本和对齐图的示例

相关内容