cb范围问题

cb范围问题

我想就 pgfplots 例程中的一些具体问题向您寻求建议。我尝试在互联网上搜索任何信息,但没有找到令人满意的结果,这就是我寻求帮助的原因。

我的问题如下:

  • 我绘制了 3D 表面图,并以地图形式显示(下面是示例和代码),
  • 在“colorbar style”功能中我设置了一些 cb 设置,
  • 图片是通过 gnuplot 外部软件绘制的,
  • 因为我需要为同一范围内的所有(#hundreds)图设置 cb 范围,所以我使用了点元最小值/最大值等。
  • 但是,cb 范围与所显示图片上绘制的实际情况不符。如何解决该问题?

    提前感谢您的帮助,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

    图1

    图 2

    图 2

    图 3

    图 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}
    

    这将产生一致的颜色编码(通过显著改变表面图的外观):

    在此处输入图片描述

    相关内容