我无法描述情节是怎样的所以我只是使用“奇怪”,因为我不知道为什么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的任何专家都知道为什么会这样吗?
答案 0 :(得分: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"