带标记的网格图图例

带标记的网格图图例

我使用带有散点(2d)的网格图,其中颜色由数据的第三个坐标确定正如这个问题所述。但是,图例应包含曲线标记作为图标(而不是微型网格)。我该如何实现?

编辑:问题似乎出legend image codeline legend无法使用网格设置正确绘制。我该如何修改自定义legend image code以仅以固定颜色(例如黑色)显示当前标记?

我迄今为止的尝试

\pgfplotsset{
  /pgfplots/pplots legend/.style={
  legend image code/.code={   
    \draw[color=black] (0cm,0cm) to (0.6cm,0cm);
    \draw[#1,color=black,mark repeat=1,mark phase=1]
      plot coordinates {
      (0.3cm,0cm)
    };
  }}}

由于编译错误而失败:

Undefined control sequence. [...] \pgfplotsplothandlermesh@numpoints ->\numcoords

答案1

使用上述设置,图例将继承绘图的当前设置(通常是所需的)。在您的例子中,您需要覆盖剧情处理者明确地通过提供sharp plot(或者可能only marks?)到图例的选项列表:

\documentclass{article}

\usepackage{pgfplots}

\begin{document}
\thispagestyle{empty}
\pgfplotsset{
  /pgfplots/pplots legend/.style={
  legend image code/.code={   
    \draw[color=black] (0cm,0cm) to (0.6cm,0cm);
    \draw[sharp plot,mark=*,color=black,mark repeat=1,mark phase=1]
      plot coordinates {
      (0.3cm,0cm)
    };
  }}}

\begin{tikzpicture}
    \begin{axis}[legend entries=$x^2y^2$]
    \addplot3[surf,pplots legend] {x^2*y^2};    
    \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

\draw[color=black] ... to ;你确定要在你的代码中使用该语句吗legend image code?你可以将其替换为

/pgfplots/pplots legend/.style={%
    /pgfplots/legend image code/.code={%
        \draw[mark repeat=2,mark phase=2,black,sharp plot] 
            plot coordinates {
                (0cm,0cm) 
                (0.3cm,0cm)
                (0.6cm,0cm)%
            };%
    }%
},  

(顺便说一下,这是默认的线条图例)

相关内容