使用 overpic 将文本置于图像底部的中央?

使用 overpic 将文本置于图像底部的中央?

我有一张图表,希望在底部有一个居中的 x 标签。想法是使用 overpic,然后使用 \put(50,1){some x-label} 在底部插入一些文本。

问题是 \put 将文本的 START 相对于图像放置。有没有办法将文本的 CENTER 相对于图像放置?

代码:

\begin{center}
    \begin{overpic}[width=0.8\textwidth]{graph}
        \put(50,1){some x-label}
    \end{overpic}
\end{center}

我还希望 y 标签逆时针旋转 90 度,水平居中,位于图表左侧。有办法吗?

答案1

   \put(50,1){\makebox(0,0){some x-label}}

将把文本的(水平和垂直)中心放在指定的位置。

要旋转文本,您可以使用\rotatebox

   \put(50,1){\makebox(0,0){\rotatebox{90}{some x-label}}}

答案2

使用瑞士军刀tikz

\documentclass{article}
\usepackage{tikz}
\begin{document}
  \begin{tikzpicture}
    \node[inner sep = 0pt] (a) {\includegraphics[width=6cm]{example-image-a}};
    \node[anchor=south,inner sep=1pt] at (a.south) {This is $x-$label};
    \node[anchor=south,inner sep=1pt,rotate=-90] at (a.west) {This is $y-$label};
  \end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

这使用了stackengine包。在这里,x 轴标签水平居中,标签底部的偏移量从图表底部指定。同样,y 轴标签垂直居中,标签左侧的偏移量从图表左侧指定。

已编辑,以表明图像方面没有问题;标签中的数学也没有问题。

\documentclass{article}
\usepackage{stackengine,graphicx}
\begin{document}
\stackinset{l}{2pt}{c}{}{\rotatebox{-90}{This is my $y$-axis label}}{%
  \stackinset{c}{}{b}{2pt}{This is my $x$-axis label}{%
    \includegraphics[width=3in]{example-image-A}%
}}
\end{document}

在此处输入图片描述

如果您的图表没有空白区域可以应用标签,\stackinset可以使用负偏移量将标签应用到图像之外。但是,在这种情况下,请将 y 轴标签设为最内层的嵌套插图,因为延伸到基本内容上方或下方的插图(x 标签也是如此)会有效改变后续插图的图像高度。相反,延伸到图像的左侧或右侧不会改变图像的有效宽度。

\documentclass{article}
\usepackage{stackengine,graphicx}
\begin{document}
\stackinset{c}{}{b}{-12pt}{This is my x-axis label}{%
  \stackinset{l}{-12pt}{c}{}{\rotatebox{-90}{This is my y-axis label}}{%
    \includegraphics[width=3in,height=3in]{example-image-A}%
}}
\end{document}

在此处输入图片描述

相关内容