【问题标题】:gnuplot : data table type value = 'u' and strange bars in histogram boxesgnuplot:数据表类型值='u'和直方图中的奇怪条
【发布时间】:2015-09-11 12:12:49
【问题描述】:

我之前问过this 的问题。这是一个相关的问题。

使用test.txt 文件:

-0.1  0  0  JANE
1  1  1  BILL
2  2  1  BILL
1  3  1  BILL
6  4  0  JANE
35 5  0  JANE
9  6  1  BILL
4  7  1  BILL
24 8  1  BILL
28 9  1  BILL
9  10  0  JANE
16 11  1  BILL
4  12  0  JANE
45 13  1  BILL

和 Gnuplot 脚本:

file='test.txt'
binwidth=10
bin(x,width)=width*floor(x/width)

set table "data_table"

plot file using (bin($1,binwidth)):(1.0) smooth freq,\
file using (1+(bin($2,binwidth))):(1.0) smooth freq

unset table

set boxwidth 1
set logscale y
set yrange[0.01:15]

plot "data_table" index 0 using ($1):($2 == 0 ? 1/0 : $2) with boxes,\
"data_table" index 1 using ($1):($2 == 0 ? 1/0 : $2) with boxes

我收到了data_table

# Curve 0 of 2, 7 points
# Curve title: "file using (bin($1,binwidth)):(1.0)"
# x y type
-10  1  i
 0  8  i
 10  1  i
 20  2  i
 30  1  i
 40  1  i
 0  1  u


# Curve 1 of 2, 3 points
# Curve title: "file using (1+(bin($2,binwidth))):(1.0)"
# x y type
 1  10  i
 11  4  i
 1  1  u

Gnuplot shell 中的每个“帮助设置表”: ". . . 字符 R 采用以下三个值之一: 如果点在活动范围内,则为“i”,如果超出范围,则为“o”,或“u” 如果它未定义。”

问题一:为什么data_table中每个索引组的最后一行的值是u,为什么x的值似乎乱序?

问题 2:生成的图看起来与Miguel's second plot 非常相似。如果您查看 (x=0, y=1) 处的箱,您会注意到直方图框中间的条形。它是什么以及如何摆脱它?

【问题讨论】:

    标签: gnuplot


    【解决方案1】:
    1. u 标记为未定义的多余点是由错误引起的,请参阅bug #1274

    2. Gnuplot 本身不会自动尊重第三列中的值。因此,尽管每个块中的最后一个点都被标记为未定义,但 gnuplot 会绘制它们,这会导致 y=1 处的附加条。

      要摆脱它们,您必须通过检查 strcol(3) eq "u" 来明确跳过第三列中有 u 的点:

    file='test.txt'
    binwidth=10
    bin(x,width)=width*floor(x/width)
    
    set table "data_table"
    
    plot file using (bin($1,binwidth)):(1.0) smooth freq,\
    file using (1+(bin($2,binwidth))):(1.0) smooth freq
    
    unset table
    
    set boxwidth 1
    set logscale y
    set yrange[0.01:15]
    unset key
    
    plot "data_table" index 0 using ($1):($2 == 0 || strcol(3) eq "u" ? 1/0 : $2) with boxes,\
    "data_table" index 1 using ($1):($2 == 0 || strcol(3) eq "u" ? 1/0 : $2) with boxes
    

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多