Alineación de pgfplots .tikz con estilos semi personalizados

Alineación de pgfplots .tikz con estilos semi personalizados

Anteriormente, en esta pregunta me ayudaron a alinear y colocar gráficos en una tabla con subtramas opcionales:Superponer dos archivos .tikz desde la entrada

Funcionó muy bien, pero no me gustaba usar opciones de escala para reducir los gráficos. Prefiero simplemente especificar el ancho y el alto, y dejar que el látex se encargue del tamaño de la fuente. Fue un artículo mucho más consistente.

Entonces, cuando creo un gráfico, le doy un estilo que permite una configuración de ancho y alto de lote en el preámbulo, y luego edito las entradas individuales pertinentes a ese gráfico debajo.

Desafortunadamente, el uso de este sistema ha vuelto a alterar la alineación. Parece que la alineación solo permanece cuando uso un estilo personalizado que define TODAS las entradas en el preámbulo, o cuando no uso ningún estilo personalizado y configuro el ancho y el alto en la imagen .tikz para que sean iguales.

MWE completo para mostrar mi problema:

\documentclass{article}
\usepackage{graphicx,array,booktabs,pgfplots}
\pgfplotsset{compat=1.9}
\usetikzlibrary{calc}

\pgfplotsset{inTable/.style={
width=4.0cm,
height=4.0cm,
}}

\newsavebox{\mybox}
\sbox{\mybox}{
\begin{tikzpicture}
\begin{axis}[inTable,
scale only axis,
xmin=1,
xmax=500,
xlabel={A},
ymin=0.5,
ymax=1,
ylabel={A}]

\addplot [color=blue,solid,line width=1.0pt,forget plot]
  table[row sep=crcr]{
10  0.7  \\
11  0.7  \\
12  0.7  \\
};
\end{axis}
\end{tikzpicture}}

\newsavebox{\myboxB}
\sbox{\myboxB}{
\begin{tikzpicture}
\begin{axis}[inTable,
scale only axis,
xmin=1,
xmax=200,
xlabel={B},
ymin=0,
ymax=3,
ylabel={B}]

\addplot [color=blue,solid,line width=1.0pt,forget plot]
  table[row sep=crcr]{
10  0.5  \\
11  0.6  \\
12  0.7  \\
};
\end{axis}
\end{tikzpicture}}

\begin{document}

\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\begin{table}[htb!]
 \centering
     \begin{tabular}{P{6.5cm} P{6.5cm}}
     \toprule
      Expt1 & Expt2\\
      \cmidrule(r){1-1}\cmidrule(l){2-2}
      \begin{tikzpicture}[baseline=(a.base)]
      \node[outer sep=0pt]  (a){\usebox{\mybox}};
       %%% Change dimensions in $(a.east)+(-0.9,0cm)$
%      \node[anchor=east,outer sep=0pt] at
%               ($(a.east)+(-0.9,0cm)$){\usebox{\mybox}};
      \end{tikzpicture}
      {\usebox{\mybox}}
      &
      {\usebox{\mybox}}
      {\usebox{\myboxB}}
      \\ \bottomrule
      \end{tabular}
      \caption{Test}
      \label{tbl:1}
\end{table}

\end{document}

Desalineación

Se agradece mucho la ayuda. Esta debería ser la pieza final de mi protocolo de trazado de inserción de gráficos de tabla.

Respuesta1

Bien, gracias Torbjørn T, el manual me sacudió la memoria.

En primer lugar, la imagen superior izquierda era en realidad un entorno {tikzpicture}interior \begin{tikzpicture}. Tuve que hacer lo mismo con la imagen superior derecha. Luego, agregar los indicadores de alineación [baseline, trim axis left, trim axis right]a cada uno \begin{tikzpicture}(los que importo desde un archivo .tikz en mi documento real, corrige la alineación).

Finalmente tengo un método para el alineamiento y control total de tramas y subtramas. Gracias a todos los que me ayudaron.

MEW completo:

\documentclass{article}
\usepackage{graphicx,array,booktabs,pgfplots}
\pgfplotsset{compat=1.9}
\usetikzlibrary{calc}

\pgfplotsset{inTable/.style={
width=4.0cm,
height=4.0cm, %Change these numbers to ovveride all graphs in the table sizes in the table
}}

\newsavebox{\mybox}
\sbox{\mybox}{
\begin{tikzpicture}[baseline, trim axis left, trim axis right]
\begin{axis}[inTable,
scale only axis,
baseline,
xmin=1,
xmax=500,
xlabel={A},
ymin=0.5,
ymax=1,
ylabel={A}]

\addplot [color=blue,solid,line width=1.0pt,forget plot]
  table[row sep=crcr]{
10  0.7  \\
11  0.7  \\
12  0.7  \\
};
\end{axis}
\end{tikzpicture}}

\newsavebox{\myboxB}
\sbox{\myboxB}{
\begin{tikzpicture}[baseline, trim axis left, trim axis right]
\begin{axis}[inTable,
scale only axis,
xmin=1,
xmax=200,
xlabel={B},
ymin=0,
ymax=3,
ylabel={B}]

\addplot [color=blue,solid,line width=1.0pt,forget plot]
  table[row sep=crcr]{
10  0.5  \\
11  0.6  \\
12  0.7  \\
};
\end{axis}
\end{tikzpicture}}

\begin{document}

\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\begin{table}[htb!]
 \centering
     \begin{tabular}{P{6.5cm} P{6.5cm}}
     \toprule
      Expt1 & Expt2\\
      \cmidrule(r){1-1}\cmidrule(l){2-2}
      \begin{tikzpicture}[baseline=(a.base)]
      \node[outer sep=0pt]  (a){\usebox{\mybox}};
       %%% Change dimensions in $(a.east)+(-0.9,0cm)$
%      \node[anchor=east,outer sep=0pt] at
%               ($(a.east)+(-0.9,0cm)$){\usebox{\mybox}};
      \end{tikzpicture}
      {\usebox{\mybox}}
      &
      \begin{tikzpicture}[baseline=(a.base)]
      \node[outer sep=0pt]  (a){\usebox{\mybox}};
       %%% Change dimensions in $(a.east)+(-0.9,0cm)$
%      \node[anchor=east,outer sep=0pt] at
%               ($(a.east)+(-0.9,0cm)$){\usebox{\mybox}};
      \end{tikzpicture}
      {\usebox{\myboxB}}
      \\ \bottomrule
      \end{tabular}
      \caption{Test}
      \label{tbl:1}
\end{table}

\end{document}

información relacionada