缩放 pgfplots 的图例

缩放 pgfplots 的图例

我正在使用该pgfplots包为我的论文创建一些数据图。例如,请考虑以下代码:

\documentclass[a4paper]{article}

\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}

\begin{document}

 \begin{tikzpicture}
 \begin{semilogyaxis}[
   xlabel=Cost,
   ylabel=Gain]
 \addplot[color=red,mark=x] coordinates {
 (10,100)
 (20,150)
 (40,225)
 (80,340)
 (160,510)
 (320,765)
 (640,1150)
 };

 \addlegendentry{Plot points};

 \end{semilogyaxis}
 \end{tikzpicture}

 \begin{tikzpicture}
 \begin{semilogyaxis}[
   xscale=1.5,
   xlabel=Cost,
   ylabel=Gain]
 \addplot[color=red,mark=x] coordinates {
 (10,100)
 (20,150)
 (40,225)
 (80,340)
 (160,510)
 (320,765)
 (640,1150)
 };

 \addlegendentry{Plot points};

 \end{semilogyaxis}
 \end{tikzpicture}

\end{document}

对于每个数据集,我想添加一个相应的图例条目,如果使用 ,效果会很好\addlegendentry。为了更好地适应页面上的图,我偶尔会在轴上添加 xcale/yscale。我只对纵横比感兴趣,因为我正在使用包tikzscale将我的图缩放到当前的\textwidth

不幸的是xscale/yscale似乎无法正常处理图例条目(仅呈现示例):如果我缩小 y 轴,则图例条目将显示在图上方,如果我放大 x 轴,则图例条目会远远超出右侧的图:

在此处输入图片描述

我能做些什么来获得具有有效图例条目的所需纵横比?

答案1

您可以使用rel axis坐标系定位图例:

\documentclass[a4paper]{article}

\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}

\pgfplotsset{every axis legend/.style={
cells={anchor=center},% Centered entries
inner xsep=3pt,inner ysep=2pt,nodes={inner sep=2pt,text depth=0.15em},
anchor=south east,
shape=rectangle,
fill=white,
draw=black,
at={(rel axis cs:0.98,0.02)}
}
}


\begin{document}

 \begin{tikzpicture}
 \begin{semilogyaxis}[
   xlabel=Cost,
   ylabel=Gain]
 \addplot[color=red,mark=x] coordinates {
 (10,100)
 (20,150)
 (40,225)
 (80,340)
 (160,510)
 (320,765)
 (640,1150)
 };

 \addlegendentry{Plot points};

 \end{semilogyaxis}
 \end{tikzpicture}

 \begin{tikzpicture}
 \begin{semilogyaxis}[
   xscale=1.5,
   xlabel=Cost,
   ylabel=Gain]
 \addplot[color=red,mark=x] coordinates {
 (10,100)
 (20,150)
 (40,225)
 (80,340)
 (160,510)
 (320,765)
 (640,1150)
 };

 \addlegendentry{Plot points};

 \end{semilogyaxis}
 \end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容