首先我承认这可能是一个非常愚蠢的问题。
我正在使用matlab2tikz
从 导出一些图表matlab
。由于我需要一些与我的实际图表无关的图例条目,因此我使用 nan-valued 图来创建图例,而实际上不显示任何图表。
在 matlab 中,它看起来像还不错想法。但是,当将这些图传递给 时pgfplots
,编译会失败。如果没有请求图例,则一切正常,并且图会被丢弃,但是当尝试使用 或 获取图例时,legend entries={}
它\addlegendentry{}
会失败。
我完全理解如果一个图包含nan
这些点,则会根据unbounded coords
密钥丢弃或跳过这些点,但为什么在这种情况下编译会失败?
附注:我知道这\addlegendimage{}
可能是最好的方法(如https://tex.stackexchange.com/a/54834/141947),但这样无法直接工作,因为tex
文件是通过matlab2tikz
% arara: pdflatex
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
width=4cm,
height=4cm,
scale only axis,
xmin=0,
xmax=6,
ymin=-1,
ymax=1,
axis x line=bottom,
axis y line=left,
legend entries={First,Second}
]
% Works like a charm
%\addplot [color=black, mark=o, mark options={solid, black}] coordinates {(0,0) (1,0)};
%\addplot [color=black, mark=+, mark options={solid, black}] coordinates {(0,0) (1,0)};
% Totally fails
\addplot [color=black, mark=o, mark options={solid, black}] coordinates {(nan,nan) (nan,nan)};
\addplot [color=black, mark=+, mark options={solid, black}] coordinates {(nan,nan) (nan,nan)};
\end{axis}
\end{tikzpicture}%
\end{document}
编辑
评论
对其他解决方案的测试表明,使用
\addlegendimage{<\addplot options>}
\addlegenentry{<legend entry>}
每次配对\addplot
都会导致正确的编译