我想就 pgfplots 例程中的一些具体问题向您寻求建议。我尝试在互联网上搜索任何信息,但没有找到令人满意的结果,这就是我寻求帮助的原因。
我的问题如下:
提前感谢您的帮助,Michal。
数据:
X Y Z 2013-01-01 00:00:00
48.0000 15.0000 2.1759 2.1859 => -0.0100 ** 2.2481 ==> -0.0723
49.0000 14.0000 2.2063 2.2063 => -0.0000 ** 2.2481 ==> -0.0418
49.0000 15.0000 2.2133 2.2177 => -0.0043 ** 2.2481 ==> -0.0348
49.0000 16.0000 2.2542 2.2289 => 0.0253 ** 2.2481 ==> 0.0061
50.0000 13.0000 2.2175 2.2261 => -0.0087 ** 2.2481 ==> -0.0306
50.0000 14.0000 2.2427 2.2375 => 0.0052 ** 2.2481 ==> -0.0055
50.0000 15.0000 2.2540 2.2488 => 0.0052 ** 2.2481 ==> 0.0059
50.0000 16.0000 2.2468 2.2601 => -0.0133 ** 2.2481 ==> -0.0013
51.0000 14.0000 2.2808 2.2680 => 0.0127 ** 2.2481 ==> 0.0326
51.0000 15.0000 2.2788 2.2793 => -0.0006 ** 2.2481 ==> 0.0306
51.0000 16.0000 2.2791 2.2906 => -0.0115 ** 2.2481 ==> 0.0310
代码:
例如,实际情况下,点 [16,49](如图所示)处的绘制值为 ± 0.025,但根据给出的 cb 范围,其值为 ± 0.06 ... 而这正是我想要修复的。我还尝试将 cbrange[-0.06:0.06] 设置为 gnuplot 函数,但效果不佳。
\documentclass{article}
\usepackage{graphicx}
\usepackage{pgfplots}
\usepackage{tikz}
\usepackage{textcomp}
\usepackage{pgfplotstable}
\usepackage{filecontents}
\usepackage{gnuplottex}
\usepgfplotslibrary{colormaps}
\pgfplotsset{width=15cm,compat=1.5, colormap/cool}
\usepgfplotslibrary{external}
\tikzexternalize[prefix=test/]
\begin{document}
\tikzsetnextfilename{test0}
\begin{tikzpicture}
\begin{axis}[
view={0}{90},
title={$\textsc{\LARGE{GOPE 2013-01-01 00:00:00}}$},
xlabel=$\textsc{Longitude [\textdegree]}$,
ylabel=$\textsc{Latitude [\textdegree]}$,
legend style={at={(0.5,-0.10)},
anchor=north,legend columns=-1},
ylabel style={sloped},
xlabel style={sloped},
xtick={13,14,15,16},
ytick={48,49,50,51},
colorbar,
every colorbar/.append style={
point meta min = -0.06,
point meta max = 0.06,
/pgf/number format/fixed,
ylabel={\normalsize{Differences of input data and fitted regression plane\ [m]}},
}
]%
\addplot3 [surf] gnuplot [raw gnuplot]{
set dgrid3d 50,50 spline;
splot '2013-1-0' u 2:1:6;
};
\addplot3 [only marks, mark=*, mark size=3pt] table[x index=1, y index=0] {2013-1-0};
\addplot [only marks, mark=oplus, mark size=3pt] coordinates {(14.7, 49.9)}; % GOPE
\legend{ ,Fitted Grid Nodes, Receiver}
\end{axis}
\end{tikzpicture}
\end{document}
如图
编辑
嗨,谢谢你的回答,我只是添加了我的评论。在我看来,数据是正确的,gnuplot 也是如此。如果我发表评论:
% every colorbar/.append style={
% point meta min = -0.06,
% point meta max = 0.06,
% /pgf/number format/fixed,
% ylabel={\normalsize{Differences of input data and fitted regression plane\ [m]}},
% }
我得到了预期的颜色条。但是,我需要统一所有颜色条的范围。例如,在图 3 中,您可以看到范围 +/- [-0.03:0.025],前两张图片的范围为 [-0.02:0.025]。我需要的是相同的范围,当然图表必须与真实数据的 z 值相对应(输入文件中的第 6 列,如上所示)。
图。1
图 2
图 3
图 4
答案1
颜色条和表面图不一致的根本原因是“点元最小值”和“点元最大值”仅在颜色条样式中指定,而没有为轴指定。结果是颜色条的轴描述被覆盖,但表面图完全不知道修改。
我不知道导致这种不一致的可能性是 pgfplots 中的错误还是功能 - 这种修改背后的意图是允许完全自定义颜色条的轴描述。
无论如何,解决方案是将“point meta min”和“point meta max”移到法线轴选项集中,即
\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{gnuplottex}
\usepgfplotslibrary{colormaps}
\pgfplotsset{width=15cm,compat=1.5, colormap/cool}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
view={0}{90},
xlabel={$\textsc{Longitude}$},
ylabel={$\textsc{Latitude}$},
legend style={at={(0.5,-0.10)},
anchor=north,legend columns=-1},
ylabel style={sloped},
xlabel style={sloped},
xtick={13,14,15,16},
ytick={48,49,50,51},
colorbar,
point meta min = -0.06,
point meta max = 0.06,
every colorbar/.append style={
/pgf/number format/fixed,
ylabel={\normalsize{Differences of input data and fitted regression plane\ [m]}},
}
]%
\addplot3 [surf] gnuplot [raw gnuplot]{
set dgrid3d 50,50 spline;
splot '2013-1-0' u 2:1:6;
};
\addplot3 [only marks, mark=*, mark size=3pt] table[x index=1, y index=0] {2013-1-0};
\addplot [only marks, mark=oplus, mark size=3pt] coordinates {(14.7, 49.9)}; % GOPE
\legend{ ,Fitted Grid Nodes, Receiver}
\end{axis}
\end{tikzpicture}
\end{document}
这将产生一致的颜色编码(通过显著改变表面图的外观):