gnuplot中的条件格式

时间:2015-02-12 16:46:53

标签: gnuplot

我在平板上测量了厚度。 gnuplot中有条件格式化选项吗?我想有四个不同的情节图,

  1. 高于给定数量,例如,在这种情况下,0.5
  2. 低于0.5
  3. 在给定范围之间,例如0.5和0.51
  4. 只有值0.5?
  5. 如何修改以下代码?

        set pm3d map
        splot 't.dat' matrix
    

    这是我的数据文件

    0.509   0.510   0.515   0.529   0.521   0.516   0.515
    0.511   0.506   0.512   0.528   0.524   0.517   0.512
    0.510   0.506   0.506   0.530   0.524   0.522   0.505
    0.511   0.509   0.513   0.516   0.511   0.520   0.510
    0.524   0.516   0.512   0.511   0.507   0.518   0.492
    0.525   0.521   0.515   0.517   0.518   0.522   0.500
    0.530   0.521   0.513   0.512   0.511   0.519   0.503
    0.562   0.516   0.510   0.516   0.522   0.518   0.508
    0.520   0.518   0.512   0.517   0.518   0.518   0.510
    0.510   0.509   0.503   0.507   0.523   0.519   0.522
    0.506   0.500   0.424   0.507   0.523   0.527   0.519
    0.509   0.430   0.500   0.513   0.519   0.528   0.524
    0.506   0.503   0.503   0.506   0.513   0.528   0.533
    0.506   0.517   0.519   0.524   0.524   0.526   0.528
    0.525   0.517   0.499   0.520   0.521   0.524   0.518
    0.519   0.518   0.516   0.519   0.521   0.520   0.519
    0.521   0.502   0.515   0.518   0.518   0.523   0.522
    0.515   0.519   0.519   0.534   0.524   0.525   0.516
    0.517   0.510   0.522   0.532   0.533   0.530   0.525
    0.520   0.457   0.526   0.530   0.530   0.531   0.524
    0.530   0.520   0.531   0.529   0.527   0.526   0.524
    

    谢谢!

1 个答案:

答案 0 :(得分:1)

你可以像这样做条件图,但是条件过滤会留下" hole"在你的图表中。

没有格式化:

set pm3d map
splot "./data" matrix

enter image description here

仅绘制大于0.5的值:

set pm3d map
splot "./data" matrix u 1:2:($3 > 0.5 ? $3 : 1/0)

enter image description here

你看到你的分数缺失了。如果你过滤得更多,你会丢失更多的点,以至于你可能没有任何要绘制的东西(< 0.5),因为没有办法进行插值。您可以做的是用固定值替换范围之外的点。例如,如果该值小于0.5替代0.5,如果它大于0.53替代0.53:

set pm3d map
splot "./data" matrix u 1:2:($3 < 0.5 ? 0.5 : $3 > 0.53 ? 0.53 : $3)

enter image description here

对于使用这些小矩阵的更好显示,您可以考虑插值:

set pm3d map interpolate 32,32
splot "./data" matrix u 1:2:($3 < 0.5 ? 0.5 : $3 > 0.53 ? 0.53 : $3)

enter image description here