为什么仅使用 nan 的图在请求图例时会导致错误

为什么仅使用 nan 的图在请求图例时会导致错误

首先我承认这可能是一个非常愚蠢的问题。

我正在使用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都会导致正确的编译

相关内容