Statistics gnuplot在打印数据文件时删除异常值

Statistics gnuplot在打印数据文件时删除异常值,statistics,plot,gnuplot,Statistics,Plot,Gnuplot,我需要用gnuplot绘制一个2列的数据文件,我想散点图就是我需要的。我对gnuplot的理解是: plot "first_click" using 2:1 我的数据开头和结尾的3行如下所示: 1 612856 3 3840538 5 5240597 . . . 139845 1 141101 1 141584 1 plot "first_click" using ($2 != 1 ? $2 : 1/0):($1 < x ? $1 : 1/0) 我希望我的散点图显示对数趋势,但是我的

我需要用gnuplot绘制一个2列的数据文件,我想散点图就是我需要的。我对gnuplot的理解是:

plot "first_click" using 2:1
我的数据开头和结尾的3行如下所示:

1 612856
3 3840538
5 5240597
.
.
.
139845 1
141101 1
141584 1
plot "first_click" using ($2 != 1 ? $2 : 1/0):($1 < x ? $1 : 1/0)
我希望我的散点图显示对数趋势,但是我的数据,因为大多数数据都有大量的异常值。所以我需要做两件事中的一件:

自动缩放到大部分数据所在的位置。 自动删除异常值。 为每一列提供一个谓词,以手动修剪数据,并且可能提供可以在范围中同时获取条目的两列的谓词-例如!第1列>x&!第2列==1 精度不是问题

在这个阶段,我更喜欢1和2,但我想看看选项3是否可行,因为我是程序员而不是统计学家。

gnuplot应该自动缩放以适应绘制的数据。如果没有,您可以使用reset yrange,xrange再次自动缩放。如果在绘制之前删除了异常值,那么您的第一个要求就已经满足了

第二个和第三个可以通过修改plot命令来实现,如下所示:

1 612856
3 3840538
5 5240597
.
.
.
139845 1
141101 1
141584 1
plot "first_click" using ($2 != 1 ? $2 : 1/0):($1 < x ? $1 : 1/0)
仅打印第二列不等于1且第一列小于x的值。其中x是要开始修剪异常值的值。1/0是告诉gnuplot点无效且不会打印的一种方式。

gnuplot应自动缩放以适应打印的数据。如果没有,您可以使用reset yrange,xrange再次自动缩放。如果在绘制之前删除了异常值,那么您的第一个要求就已经满足了

第二个和第三个可以通过修改plot命令来实现,如下所示:

1 612856
3 3840538
5 5240597
.
.
.
139845 1
141101 1
141584 1
plot "first_click" using ($2 != 1 ? $2 : 1/0):($1 < x ? $1 : 1/0)
仅打印第二列不等于1且第一列小于x的值。其中x是要开始修剪异常值的值。1/0是一种告诉gnuplot点无效且不会打印的方法。

您也可以尝试

plot "first_click" using 2:1 smooth bezier with lines
这样做的副作用是不会显示大多数异常值。

您也可以尝试

plot "first_click" using 2:1 smooth bezier with lines

这样做的副作用是不会显示大多数异常值。

Thank=D我将顺便在明天绘制更多数据。W:Dnice答案确实如此。。!!为什么这会阻止绘制异常值?Thank=D我将顺便在明天绘制更多数据。W:Dnice答案确实如此。。!!为什么这会阻止绘制异常值?