
Estoy casi satisfecho con mis gráficos, sólo faltan las líneas de la cuadrícula. Básicamente, lo que estoy haciendo es una especie de gráfico de densidad/gráfico de color al permitir que pgfplots genere una superficie y la visualice desde arriba:
\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}
Salida de ejemplo, usandoesteaporte:
La superficie se dibuja utilizando una cuadrícula fina (50x50), por lo que dejar las líneas de malla originales es imposible. Al elegir shader=interp
pgfplots, básicamente se eliminan las líneas de malla e interpola muy bien los colores. Sería fantástico si se pudieran dibujar algunas líneas de cuadrícula encima, usando, por ejemplo, negro con un 10% de opacidad. ¿Alguien sabe cómo hacer esto?
Respuesta1
Parece que cuando lo haces: colormap = {graywhite}{color=(white) color=(gray)}
llena toda el área de trazado de blanco. Entonces las líneas de la cuadrícula están ocultas detrás de su trama.
Para trazarlos en la parte superior como lo solicitó, puede 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}
Que produce:
Para trazar líneas negras con un 10% de opacidad puedes usar:
\draw[opacity=0.1,step={(axis cs:5,5)}] (0,0) grid (axis cs:30,20);