Gráfico de superficie 3D a partir de datos csv

Gráfico de superficie 3D a partir de datos csv

Estoy intentando trazar datos de velocidad de una sonda medida a través de un canal.

El objetivo es una superficie que se extiende sobre los puntos medidos y está coloreada según el valor de velocidad (v) y vista desde arriba (¿como un "mapa de colores"?). Incluyendo sombreado entre esos puntos. El mejor resultado que pude obtener después de un día de intentarlo se enumera a continuación. Aún falta el sombreado entre los puntos.

Al reemplazar los parámetros, addplot3empeora surf.

\documentclass{article}
\usepackage{pgfplots, filecontents}


\begin{filecontents*}{04_v_plot.csv}
depth,column,v
0.05,0.025,3.797153190429337
0.1,0.025,3.726861900740809
0.15,0.025,3.5359111045962095
0.2,0.025,3.4128410835129053
0.25,0.025,3.140235925631795
0.05,0.1,4.243357377017983
0.1,0.1,4.1459069835908196
0.15,0.1,3.9166226281025893
0.2,0.1,4.106142900384007
0.25,0.1,3.4708819672783275
0.05,0.175,4.132121899523459
0.1,0.175,3.768785853709482
0.15,0.175,3.345251163711442
0.2,0.175,3.2543256435843415
0.25,0.175,2.7823975289356344
\end{filecontents*}

\begin{document}

\begin{figure}
  \centering
  \begin{tikzpicture}
    \begin{axis}[
      xlabel={Horizontal position},
      ylabel={Depth},
      colorbar,
      y dir=reverse,
      ymin=0,
      ymax=0.3,
      xmin=0,
      xmax=0.2,
      view={0}{90},
      ]

      \addplot3+[scatter, only marks] table[x=column,y=depth,z=v,col sep=comma]{04_v_plot.csv};
    \end{axis}
  \end{tikzpicture}
  \caption{Velocities at positions}%
\end{figure}

\end{document}

Reorganicé los datos del csv original:

depth,A,B,C
0.05,3.797153190429337,4.243357377017983,4.132121899523459
0.1,3.726861900740809,4.1459069835908196,3.768785853709482
0.15,3.5359111045962095,3.9166226281025893,3.345251163711442
0.2,3.4128410835129053,4.106142900384007,3.2543256435843415
0.25,3.140235925631795,3.4708819672783275,2.7823975289356344

¿Sería posible leer el archivo csv original y trazar los datos?

Respuesta1

Asymptotesolución:

// csv-colormap.asy
//
// run  
//    asy csv-colormap.asy
//
// to get a standalone image in csv-colormap.pdf
//
settings.tex="pdflatex";
size(12cm,12cm);
import graph;
import palette;
import colorbrewer;
import fontsize;defaultpen(fontsize(8pt));
texpreamble("\usepackage{lmodern}"+"\usepackage{amsmath}"
            +"\usepackage{amsfonts}"+"\usepackage{amssymb}");
file fin=input("04_v_plot.csv").csv();
string[] s=fin.line(); // skip the title line
real[][] A=fin;
A=transpose(A);
real[] x=A[0];
real[] y=A[1];
real[] z=A[2];

pen[] Palette=Blues9;

picture bar;
bounds range=image(x,y,z,Palette);

palette(bar,rotate(90)*"Velocity",range,(0,0),(0.5cm,5.3cm)
          ,Right,Palette,PaletteTicks("$%+#.1f$"));
add(bar.fit(),point(E),30E);

xaxis("Horizontal position",BottomTop,LeftTicks(Step=0.05,step=0.01),above=true);
yaxis("Depth",LeftRight,RightTicks(Step=0.05,step=0.01),above=true);

ingrese la descripción de la imagen aquí

Tenga en cuenta que este código utiliza una paleta Blues9de colorbrewer.asy, que proporciona Esquemas de color de la profesora Cynthia Brewer como matrices de plumas para asíntota. Por supuesto, se puede sustituir por cualquier otra paleta adecuada.

información relacionada