0

我无法描述情节的样子,所以我只使用“奇怪”,因为我不知道为什么 gnuplot 会给我这样的情节。这是我想做的事情。

我有一个包含两列的数据文件,第一列是文件名,第二列是每个文件的大小。每列超过 200 万行。我只想绘制文件大小的分布。这是我的代码

set terminal postscript landscape enhanced mono dashed lw 2 "Times" 18
outputfile = "sizedist.ps"
set output outputfile

binwidth = 0.05
bin(x,width)=width*floor(x/width)
plot [0:3.5][]'sizedist.out' using (bin(log10($2/1024),binwidth)):(1.0) smooth freq with boxes t "Binsize=0.05 dex"

set terminal x11

理想情况下,它应该是一个类似高斯的条形图,但它有许多其他图叠加(见我的附件)。任何有关 gnuplot 的专家都知道为什么会这样吗? 在此处输入图像描述

4

1 回答 1

1

如果频率图中的某些数据没有明确定义的值(例如 NaN、inf 等),就会发生这种情况。

由于您在图中使用对数函数,因此您必须小心值 <= 0 的数据。我猜你有大小= 0的文件。在这种情况下,log10 只是给你NaN,这会弄乱频率图的计数过程。

在你的情节中加入一个条件来解决这个问题。例如:

plot [0:3.5][]'sizedist.out' using ($2>0?bin(log10($2/1024),binwidth):0):(1.0) smooth freq with boxes t "Binsize=0.05 dex"
于 2013-05-01T10:12:46.440 回答