我正在使用该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}