我如何对齐 pgfplots 图?

我如何对齐 pgfplots 图?

我正在尝试使用 pgfplots 绘制带有相关数据表的图表。效果很好,但图表本身与表格不一致。它看起来像这样:

我不喜欢这个悬垂部分。我怎样才能移动图表的位置?

我想将一侧或另一侧对齐。如果我可以将它们对齐到右侧,结果将如下所示:

我只能处理这一点,但如果有一种更通用的方法来移动图表也会很有用。

我查看了 pgfplots 手册以及pgf 手册,但我找不到任何看起来很有希望的东西。我对 LaTeX 还很陌生,只用了几天,所以请随意给我指明正确的方向。

代码:

Results:\\
\begin{tabular}{| c | c | c |}
    \hline
    \textbf{QP} & \textbf{Average PSNR\_Y ($dB$)} & \textbf{Total bits} \\
    \hline
    1 & 49.197166 & 14593504\\
    \hline
    8 & 32.003399 & 1106824\\
    \hline
    16 & 28.387211 & 374880\\
    \hline
    24 & 26.661640 & 206704\\
    \hline
    31 & 25.740038 & 150056\\
    \hline
\end{tabular}

\vspace*{2em}


\noindent
\begin{tikzpicture}
    \begin{axis}[
        xlabel=$QP$,
        ylabel={$Encoding Quality$}
    ]
    % use TeX as calculator:
%   \addplot {x^2 - x +4};
    \addplot coordinates {
        (1,49.197166)
        (8,32.003399)
        (16,28.387211)
        (24,26.661640)
        (31,25.740038)
    };
    \addlegendentry{ PSNR\_Y }
    \addplot coordinates {
        (1,58.374016)
        (8,4.427296)
        (16,1.49952)
        (24,0.826816)
        (31,0.600224)

    };
    \addlegendentry{Total Bits $\times250,000$}

    \end{axis}
\end{tikzpicture}

答案1

我认为trim righttrim left选项仅当有东西突出于轴框时才有用 - 例如,如果您想从水平对齐中排除图例。

就你的情况而言,我认为用

\begin{flushright}
...
\end{flushright}

如果您有多个需要对齐的元素,您也可以将它们全部打包到表格中(以自然的方式支持左对齐或右对齐的列)。

一旦你开始水平垂直对齐,您还应该考虑使用\begin{tikzpicture}[baseline]选项和\begin{tabular}[c]标志——两者都是相关控制机制的一部分(在 pgfplots 手册中有更详细的解释,其中有一节“对齐”也应该涵盖这些特定情况)。

答案2

您可以使用trim lefttrim right选项。

例如你应该写:

\begin{tikzpicture}[trim left=0cm]
 ...plot code...
\end{tikzpicture}

另请参阅pgf 手册,第 167 页,了解如何正确使用它。基本上,它的作用是忽略给定trim left X-坐标和坐标的右边trim right

因此在上面的例子中,x=0将被忽略。

尝试一下直到得到你想要的结果。

答案3

如何插入图表和表格?如果你写

\begin{table}...\end{table}\\    
\begin{tikzpicture}...\end{tikzpicture}  

尝试

\begin{table}...\end{table}\\  
\noindent \begin{tikzpicture}...\end{tikzpicture}

答案4

您可以使用绝对定位

\begin{tikzpicture}[remember picture, overlay]
    \begin{axis}[
        xlabel=$QP$,
        ylabel={$Encoding Quality$},
        at=(current page.west),
        shift={(10.8em,-13em)},
    ]
...
\end{tikzpicture}

考试表示例这里显示了更多内容。第 198 页pgf 手册有更多关于 的信息remember picture, overlay。使用这些命令以及\vspace*{}可以让你获得尽可能多的控制权。你可以px在坐标中使用 或任何其他标准单位shift

相关内容