我正在尝试使用 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 right
和trim left
选项仅当有东西突出于轴框时才有用 - 例如,如果您想从水平对齐中排除图例。
就你的情况而言,我认为用
\begin{flushright}
...
\end{flushright}
如果您有多个需要对齐的元素,您也可以将它们全部打包到表格中(以自然的方式支持左对齐或右对齐的列)。
一旦你开始水平和垂直对齐,您还应该考虑使用\begin{tikzpicture}[baseline]
选项和\begin{tabular}[c]
标志——两者都是相关控制机制的一部分(在 pgfplots 手册中有更详细的解释,其中有一节“对齐”也应该涵盖这些特定情况)。
答案2
您可以使用trim left
和trim 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
。