我刚开始学习如何使用 gnuplot。目前我需要绘制一些直方图。我有一组数据,它们在平均值附近非常紧凑并且有一条长尾。这样做的最终结果是数据紧凑的重叠框/xtics。我最初的想法之一是使用可变大小的 bin 宽度来尝试控制间距,但这并不奏效。最后,我决定根据限制范围的不同 sigma(例如 1σ、2σ、3σ 等)生成图。对于较大的 sigma,我将图形类型更改为线点(尽管仍然会出现重叠的 xtics,但它使图形更具可读性)。
然而,在这样做的同时,它激发了我对可变宽度箱的正确方法的好奇心。这甚至可能吗?
这是一些示例数据。这只是一小部分,因此存在明显的差距。
ITEMS COUNT SCALE
149 60 1
186 811 1
2986 180 2.21622
3069 189 2.21622
5827 45 3.13514
5940 37 3.13514
6189 34 4.2973
6346 32 4.2973
SCALE 应该是 bin 宽度比例。请注意,计数是针对比例调整的。这个想法是更宽的宽度将表明计数中考虑了比例。
情节的设置非常基本
set style data histogram
set style histogram cluster gap 1
set xtics rotate
plot '-' u 2:xtic(1) with boxes t '' lc rgb 'blue'
我仍然感到困惑的部分是using. 不幸的是,我看过其他一些帖子,但没有一个真正有助于减轻我的困惑。
在后一篇文章中,让我感到困惑的部分是这一行:
plot "data.dat" u (hist($1,width)):(1.0) smooth freq w boxes lc rgb"green" notitle
我认为using条目是针对 X 然后 Y 值(框的 X 位置和高度)。因此,当我阅读上面的行时,它调用函数hist来获取 X 值,但是 Y 是(1.0)并且那部分对我来说没有意义。
甚至我的绘图线也让我感到困惑(尽管它似乎有效),因为使用我使用2:xtic(1). 我不清楚为什么1:2不能正常工作。
希望这个问题可以理解。我从这个周末开始只使用 gnuplot,所以可以说我仍处于学习曲线阶段。