如何在图片标题中用标记创建图例线

如何在图片标题中用标记创建图例线

我正在尝试创建一个图例,用于图的标题(以匹配在 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}

传奇

相关内容