我正在尝试创建一个图例,用于图的标题(以匹配在 matlab 中创建的图,所以很遗憾,我不能直接链接到该图。)。我知道 tikz 可以创建用于图例的值,就像下面包含的 MWE 一样。但我真正想要的是还有一个标记符号:带圆圈的虚线 -o-
我想也许我想添加一个节点(例如,画一条短线,画一个符号,再画另一条短线)。那么这会给我一些类似的东西
\newcommand{\hwplotA}{\raisebox{2pt}{\tikz{\draw[black,dashed,mark=o,line width=0.9pt](0,0) -- (5mm,0);\node at (2.5mm,0) {$o$}}}}
虽然这不能编译。OP在下面的链接中列出的解决方案对我来说不起作用(放置一个零大小的tikz图),因为它似乎不能与我正在使用的其他软件包很好地兼容。
有任何想法吗?
MWE 创建传奇线如何在标题/文本中绘制图例线而不包括原始情节的 TikZ 图片?
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\newcommand{\hwplotA}{\raisebox{2pt}{\tikz{\draw[red,solid,line width=0.9pt](0,0) -- (5mm,0);}}}
\newcommand{\hwplotB}{\raisebox{2pt}{\tikz{\draw[black,dashed,line width=1.2pt](0,0) -- (5mm,0);}}}
This is how I reference to {\hwplotA} and {\hwplotB}.
\end{document}
答案1
为了说明 Christian Feuersänger 的解决方案,在普通的 tikzpicture 中使用 pgfplots 样式的图例:
您确实希望将图例放在标题中吗? 放在图片和标题之间就可以了。
\documentclass{article}
\usepackage{pgfplots}
\makeatletter
% argument #1: any options
\newenvironment{customlegend}[1][]{%
\begingroup
\let\addlegendimage=\pgfplots@addlegendimage
\let\addlegendentry=\pgfplots@addlegendentry
% inits/clears the lists (which might be populated from previous axes):
\pgfplots@init@cleared@structures
\pgfplotsset{#1}%
}{%
% draws the legend:
\pgfplots@createlegend
\endgroup
}%
\makeatother
\begin{document}
\begin{tikzpicture}
\begin{customlegend}[legend columns=-1]
\addlegendimage{red,mark=*}
\addlegendentry{raw data}
\addlegendimage{blue,mark=triangle*}
\addlegendentry{cooked data}
\end{customlegend}
\end{tikzpicture}
\end{document}