3D-график поверхности из CSV-данных

3D-график поверхности из CSV-данных

Я пытаюсь построить график данных о скорости, полученных с помощью зонда, измеренного поперек канала.

Целью является поверхность, охватывающая измеренные точки и окрашенная в соответствии со значением скорости (v) и просматриваемая сверху (как «карта цветов»?). Включая затенение между этими точками. Лучший результат, который мне удалось получить после дня попыток, приведен ниже. Затенение между точками по-прежнему отсутствует.

При замене параметров на addplot3становится 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}

Я переставил данные из исходного CSV-файла:

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

Можно ли прочитать исходный CSV-файл и построить график данных?

решение1

Asymptoteрешение:

// 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);

введите описание изображения здесь

Обратите внимание, что этот код использует палитру Blues9из colorbrewer.asy, которая обеспечивает Цветовые схемы профессора Синтии Брюэр как массивы перьев для асимптоты. Конечно, его можно заменить любой другой подходящей палитрой.

Связанный контент