在 3d pgfplot 中使用偏差作为表面颜色

在 3d pgfplot 中使用偏差作为表面颜色

我已经测量了以下形式的数据:
[x、y、z、z 偏差]

我正在使用 pgfplot 以 3D 形式呈现 x、y、z,这很好用。但现在,我想将 z 偏差绘制为 3D 地图上的颜色。到目前为止,地图上的颜色是根据振幅(z 坐标)的值创建的,但到目前为止,我还没有弄清楚如何使用第 4 个坐标来执行此操作并将其与右侧的颜色条关联起来。

\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\usepackage{lscape}


\pgfplotsset{compat=newest, scale only axis}
\pgfplotsset{/pgf/number format/read comma as period}

\begin{document}

\begin{landscape}
\begin{tikzpicture}
    \begin{axis} [
        colorbar = true,
        colorbar style = {
            ylabel = Standard Deviation
        },
        width = \textheight,
        xlabel = Angle,
        ylabel = OD\textsubscript{700},
        zlabel = Amplitude,
    ]
        \addplot3 [surf] file [
            x index = 0,
            y index = 1,
            z index = 2,
            z error index = 3,
            col sep = space
        ]
        {vorlage_messdaten.csv};
    \end{axis}
\end{tikzpicture}
\end{landscape}

\end{document}

在此处输入图片描述

下图是上图的剖面图。在这里,我能够将偏差显示为误差线。偏差值在 100 到 35000 的范围内变化。我想将此范围映射到红色和绿色之间的颜色,其中绿色表示最低偏差,红色表示最高偏差。在最终结果中,3D 图像的颜色应将偏差显示为绿色和红色之间的渐变,以清晰地概述偏差最低和最高的区域。 在此处输入图片描述

答案1

我能够弄清楚:)我使用交通灯颜色来表示不同的偏差:

\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\usepackage{lscape}

\pgfplotsset{compat=newest, scale only axis}
\pgfplotsset{/pgf/number format/read comma as period}

\begin{document}

    \begin{landscape}
    \begin{tikzpicture}
        \begin{axis} [
            colorbar = true,
            colorbar style = {
                ylabel = Standard Deviation
            },
            colormap = {newmap}{
                color(0cm) = (green);
                color(1cm) = (yellow);
                color(8cm) = (red);
            },
            width = \textheight,
            xlabel = Angle,
            ylabel = OD\textsubscript{700},
            zlabel = Amplitude
        ]
            \addplot3[surf] table [
                x = Angle,
                y = OD700,
                z = Amplitude,
                point meta = \thisrow{Deviation},
                col sep = space
            ]
            {vorlage_messdaten.csv};
        \end{axis}
    \end{tikzpicture}
    \end{landscape}

\end{document}

结果如下: 在此处输入图片描述

相关内容