我已经测量了以下形式的数据:
[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}