pgfplots:图例中的数学对齐和大小

pgfplots:图例中的数学对齐和大小

像本例中那样,由更复杂的数学公式创建的图例条目是重叠的,并且与线条的对齐是错误的。

\documentclass[]{scrbook}

\usepackage{pgfplots}
\usepackage{amsmath}

\begin{document}
\pgfplotsset{width=0.8\textwidth, height=0.6\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[scale only axis,samples=2000,
         /pgfplots/enlargelimits=false,
         legend style={legend pos=north west}]
  \addplot[domain=0:30] gnuplot{5*exp(-((x-5*pi)/(2.5*pi))**2)*sin(2*x)+x};
  \addplot[domain=0:30] gnuplot{x};
  \legend{$f(x) = 5\exp\left(-\left(\dfrac{x-5\pi}{2.5\pi}\right)^2\right)
             \sin(2x) + x$,
          $f(x)_\text{fit} = x$}
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

可以使用以下方法更改对齐方式

legend cell align=left,

其他问题可以通过多种不同方式进行改变 - 接下来我没有使用它们,samples=2000因为它会显著增加编译时间 - 但问题与此无关。

  • 使用legend style={legend pos=north west,font=\tiny}给出

在此处输入图片描述

\begin{tikzpicture}
\begin{axis}[scale only axis,
                    legend cell align=left,
         /pgfplots/enlargelimits=false,
          legend style={legend pos=north west,font=\tiny}]
  \addplot[domain=0:30] {5*exp(-((x-5*pi)/(2.5*pi))^2)*sin(deg(2*x))+x};
  \addplot[domain=0:30] {x};
  \legend{$f(x) = 5\exp\left(-\left(\dfrac{x-5\pi}{2.5\pi}\right)^2\right)
             \sin(2x) + x$,
          $f(x)_\text{fit} = x$}
\end{axis}
\end{tikzpicture}
  • 使用@percusse 的\raisebox想法(聊天期间给予发帖许可 - 感谢@percusse!)

    \legend{\raisebox{2.5ex}{$f(x) = 5\exp\left(-\left(\dfrac{x-5\pi}{2.5   \pi}\right)^2\right)\sin(2x) + x$}
    

在此处输入图片描述

  • 在图例中使用空白行

在此处输入图片描述

\begin{tikzpicture}
\begin{axis}[scale only axis,
         /pgfplots/enlargelimits=false,
         legend cell align=left,
         legend style={legend pos=north west,font=\tiny}]
  \addplot[domain=0:30] {5*exp(-((x-5*pi)/(2.5*pi))^2)*sin(deg(2*x))+x};
  \addlegendentry{$f(x) = 5\exp\left(-\left(\dfrac{x-5\pi}{2.5\pi}\right)^2\right)$}
  \addlegendimage{empty legend};
  \addlegendentry{};
  \addplot[domain=0:30] {x};
  \addlegendentry{$f(x)_\text{fit} = x$};
\end{axis}
\end{tikzpicture}
  • 或者你可以把图例放在caption使用\label\ref

在此处输入图片描述

\begin{figure}
\begin{tikzpicture}
\begin{axis}[scale only axis,
                    legend cell align=left,
         /pgfplots/enlargelimits=false,
          legend style={legend pos=north west,font=\tiny}]
  \addplot[domain=0:30] {5*exp(-((x-5*pi)/(2.5*pi))^2)*sin(deg(2*x))+x};
  \label{plot:firstplot};
  \addplot[domain=0:30] {x};
  \label{plot:secondplot};
\end{axis}
\end{tikzpicture}
\caption{\ref{plot:firstplot} is $f(x) = 5\exp\left(-\left(\dfrac{x-5\pi}{2.5\pi}\right)^2\right)\sin(2x) + x$ and 
\ref{plot:secondplot} is $f(x)_\text{fit}=x$}
\end{figure}

相关内容