图例条目随情节一起 Y 向移动

图例条目随情节一起 Y 向移动

我正在使用 pgfplots 进行晶体学数据分析。我可以有效地使用yshift它在轴环境中移动绘图,但是,图例条目行引用也会移动。我最初打算使用 pgfplotstable 简单地添加或减去每个要移动的数据点,但这需要大量计算(许多数据点)。请原谅常数绘图黑客有一个下拉绘图。代表性代码(由评论者提供):

\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\pgfplotsset{compat = 1.13}
\pgfplotstableset{col sep = comma}

\begin{document}
\pgfplotstableread{
20, 1000
70, 500
}{\data}

\begin{tikzpicture}
\begin{axis}

\addplot[black] table[x index = 0, y index = 1, col sep = comma] {\data};
\addlegendentry[]{040\_Mn}
\addplot[red!20!blue] table[x index = 0, y expr={\thisrowno{1} - 500}] {\data};
\addlegendentry[]{023\_Mn}
\addplot[yshift=-2cm,red!20!blue] table[x index = 0, y index=1] {\data};
\addlegendentry[]{035\_Mn}
\addplot[yshift = -5cm, red!30!blue] expression {x^2};
\end{axis}
\end{tikzpicture}
\end{document}

结果

答案1

这里有两个选项。首先,yshift使用类似

\addplot[red!20!blue] table[x index = 0, y expr={\thisrowno{1} - 500}] {\data};

这会从表中的 y 值中减去 500。您可以使用文本文件的名称,而不必先加载到宏中(此处\data)。

另一个选项是使用yshift,但添加forget plot\addplot选项中。forget plot禁用将图添加到图例中,因此您需要\addlegendimage{<style options for plot>}

\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\pgfplotsset{compat = 1.13}
\pgfplotstableread[col sep=comma]{
20, 1000
70, 500
}{\data}

\begin{document}
\begin{tikzpicture}
\begin{axis}

\addplot[black] table[x index = 0, y index = 1] {\data};
\addlegendentry[]{040\_Mn}
\addplot[red!20!blue] table[x index = 0, y expr={\thisrowno{1} - 500}] {\data};
\addlegendentry[]{023\_Mn}
\addplot[yshift=-2cm,green,forget plot] table[x index = 0, y index=1] {\data};
\addlegendimage{green}
\addlegendentry{shifted}
\end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容