Linhas de grade no gráfico de superfície de vista superior

Linhas de grade no gráfico de superfície de vista superior

Estou quase satisfeito com meus gráficos, faltando apenas linhas de grade. O que estou basicamente fazendo é uma espécie de gráfico de densidade/gráfico de cores, permitindo que o pgfplots gere uma superfície e visualize-a de cima:

\begin{tikzpicture}
    \begin{axis}[
            axis lines = middle,
            grid = major,
            grid style = {color = white!90!black},
            xlabel = $x$,
            ylabel = $y$,
            no markers,
            mesh/ordering=y varies,
            view={0}{90},
            colormap = {graywhite}{color=(white) color=(gray)},
        ]
        \addplot3[surf,shader=interp] file{surf.txt};
    \end{axis}
\end{tikzpicture}

Saída de exemplo, usandoesseentrada:

saída

A superfície é desenhada usando uma grade fina (50x50), portanto, deixar as linhas de malha originais é impossível. Ao escolher shader=interppgfplots basicamente remove as linhas da malha e interpola bem as cores. Seria fantástico se algumas linhas de grade pudessem ser desenhadas em cima disso, usando, por exemplo, preto com 10% de opacidade. Alguém sabe fazer isso?

Responder1

Parece que quando você está fazendo: colormap = {graywhite}{color=(white) color=(gray)}preenche toda a área de plotagem com branco. Portanto, as linhas da grade ficam escondidas atrás do seu gráfico.

Para plotá-los no topo conforme solicitado, você pode usar:

\begin{tikzpicture}
\begin{axis}[
        axis lines = middle,
        grid = major,
        grid style = {color = white!90!black},
        xlabel = $x$,
        ylabel = $y$,
        no markers,
        mesh/ordering=y varies,
        view={0}{90},
        colormap = {graywhite}{color=(white) color=(gray)},
    ]
    \addplot3[surf,shader=interp] file{surf.txt};
    \draw[dotted,step={(axis cs:5,5)},help lines] (0,0) grid (axis cs:30,20);
\end{axis}
\end{tikzpicture}

O que produz: Resultado

Para plotar linhas pretas com 10% de opacidade você pode usar: \draw[opacity=0.1,step={(axis cs:5,5)}] (0,0) grid (axis cs:30,20);

informação relacionada