我有一个情节,其中只有一条实际情节线和两个draw
放入情节区域的东西。一条水平线和一个圆圈,我希望它们都出现在图例中。
我尝试使用,\addlegendimage{...}
但没有效果。如何让线条和圆圈在图例中正确显示?
以下是针对我的问题的 MWE:
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{pgfplots}
\usepackage{pgfplots, pgfplotstable}
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
ymin=70,
ymax=100,
legend style={at={(0.5,0.5)},
anchor=west,legend columns=1},
% xtick=data,
legend style={font=\small},
legend entries={diagonal-line,
dashed-line,
circle
}
]
\addlegendimage{line width=0.3mm,color=purple, mark=|}
\addplot[mark=|,purple] coordinates {
(100, 98.4)
(99, 97.5)
(98, 96.5)
(97, 95.5)
};
\addlegendimage{line width=0.8mm,style=dashed,color=orange}
\draw [dashed] (axis cs: 100, 96.4) -- (axis cs: 90, 96.4);
\addlegendimage{mark=x}
\draw (axis cs: 97.5, 96.1) node[circle,fill=black,scale=0.5,color=black] {};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
答案1
\addplot
已经为图例定义了一个图像。因此您不能为图表定义额外的图例图像。
如果您将\draw
命令更改为,则\addplot
没有\addlegendimage
必要。
\documentclass[a4paper]{article}
\usepackage{pgfplots}% loads tikz and graphicx
\pgfplotsset{compat=1.13}% <- set a value for compat!!
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
ymin=70,
ymax=100,
legend style={at={(0.5,0.5)},
anchor=west,legend columns=1},
% xtick=data,
legend style={font=\small},
legend entries={diagonal-line,
dashed-line,
circle
}
]
\addplot[mark=|,purple] coordinates {
(100, 98.4)
(99, 97.5)
(98, 96.5)
(97, 95.5)
};
\addplot[dashed,line width=.8mm,orange] (100, 96.4) -- (90, 96.4);
\addplot[mark=*,only marks] coordinates{(97.5, 96.1)};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
注意自1.11版本起这axis cs
是默认坐标系。
如果您想要使用,\draw
则仅为此命令定义自己的图例图像。
\documentclass[a4paper]{article}
\usepackage{pgfplots}% loads tikz and graphicx
\pgfplotsset{compat=1.13}% <- set a value for compat!!
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
ymin=70,
ymax=100,
legend style={at={(0.5,0.5)},
anchor=west,legend columns=1},
% xtick=data,
legend style={font=\small},
legend entries={diagonal-line,
dashed-line,
circle
}
]
\addplot[mark=|,purple] coordinates {
(100, 98.4)
(99, 97.5)
(98, 96.5)
(97, 95.5)
};
\draw[dashed,line width=.8mm,orange] (100, 96.4) -- (90, 96.4);
\addlegendimage{dashed,line width=.8mm,orange}
\draw (97.5, 96.1) node[circle,fill=black,scale=0.5,color=black] {};
\addlegendimage{mark=*,only marks}
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}