如何插入垂直线作为垂直图的图例条目

如何插入垂直线作为垂直图的图例条目

我有两张图,一条水平线(y1),一条垂直线(y2)。为了在图例中更好地识别,我希望图例中的垂直线也表示垂直图(y2)。换句话说:y2 左侧应该是一条垂直虚线(旋转 90°),而 y1 图例条目保持原样。

有没有办法可以自定义图例条目符号的外观?非常感谢您的帮助!

手绘是图例条目应该的样子(可能更专业一点)

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0,
xmax=5,
ymin=0,
ymax=5,
axis background/.style={fill=white},
legend entries={y1,y2},
]
\addplot [color=black, dashdotted]
  table[row sep=crcr]{%
0   3\\
5   3\\
};
\addplot [color=black, dashed]
  table[row sep=crcr]{%
0   -100\\
2   100\\
};
\end{axis}
\end{tikzpicture}
\end{document}

答案1

欢迎!您可以使用 创建任何您想要的图例样式legend image code。我创建了一种名为 的样式vline legend,可以将其添加到绘图选项中以使相应的图例条目垂直。

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16,
    /pgfplots/vline legend/.style={
        legend image code/.code={
            \draw [mark repeat=2,mark phase=2,##1]
             plot coordinates {
            (0.3cm,-0.3cm) (0.3cm,0cm)    (0.3cm,0.3cm)
            };
}, },
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0,
xmax=5,
ymin=0,
ymax=5,
axis background/.style={fill=white},
legend entries={y1,y2},
]
\addplot [color=black, dashdotted]
  table[row sep=crcr]{%
0   3\\
5   3\\
};
\addplot [color=black, dashed,vline legend]
  table[row sep=crcr]{%
0   -100\\
2   100\\
};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

图例条目可以旋转的另一种方法。

legend image post style={rotate=90,xshift=-0.3cm, yshift=-0.3cm}

在此处输入图片描述

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0,
xmax=5,
ymin=0,
ymax=5,
axis background/.style={fill=white},
legend entries={y1,y2},
]
\addplot [color=black, dashdotted]
  table[row sep=crcr]{%
0   3\\
5   3\\
};
\addplot [color=black, dashed,legend image post style={rotate=90, yshift=-0.3cm} ]
  table[row sep=crcr]{%
0   -100\\
2   100\\
};
\end{axis}
\end{tikzpicture}
\end{document}

PS:@Schrödinger的猫的解决方案更好。

相关内容