我在图像标题中创建图例时遇到了一些问题。我使用 matlab2tikz 制作了很多图表,并将它们外部化以减少编译时间和内存使用量。因此,我无法\label
在代码中使用任何 s。因此,我在其下方立即制作了一个 TikZ 图,并在标题中使用这些线条样式。MWE 显示如下:
\begin{tikzpicture}
\begin{axis}[hide axis]
\addplot [color=red,solid,forget plot]
(0,0);\label{hwplot1}
\addplot[color=brown,solid,mark=o,mark options={solid},forget plot]
(0,0);\label{Blomhoff}
\end{axis}
\end{tikzpicture}
然后我在标题中调用标签,一切正常。出现的问题是,我在 TikZ 定义的 (0,0) 处得到一个棕色点,这是标记,我找不到办法摆脱它。有什么办法可以做到这一点吗?或者有另一种方法可以将图例放在允许外部化的标题中?
提前致谢
答案1
也许自从您提出这个问题以来,PGFPlots 中发生了一些变化,但今天您只需\ref
\label
ed \addplot
s 即可获得所需的输出。
这里我只写了一个虚拟标题,我在其中\ref
添加了标签。希望这能回答你的问题,因为我不能 100% 确定我理解得正确。
% used PGFPlots v1.14
\documentclass[border=5pt,varwidth]{standalone}
\usepackage{pgfplots}
\usetikzlibrary{
pgfplots.external,
}
\tikzexternalize[
% prevent externalization of none named figures/plots
% (that means that in this case the `\ref's will not be externalized)
only named=true,
]
\begin{document}
\tikzsetnextfilename{just_a_test}
\begin{tikzpicture}
\begin{axis}
\addplot coordinates {(0,0) (1,1)};
\label{hwplot1}
\addplot+ [color=green,solid,mark=o,mark options={solid},dashed]
coordinates {(0.1,0) (1.1,1)};
\label{Blomhoff}
\end{axis}
\end{tikzpicture}
Figure~1: This is a test plot only, where \ref{hwplot1} shows a blue line
and \ref{Blomhoff} shows a green line
\end{document}