我试图在gnuplot中学习一些直方图工具,我制作了以下脚本
set samples 500
set table "set1.dat"
plot [0:10] 5+2*rand(0)
unset table
set table "set2.dat"
plot [0:10] 10*rand(0)
unset table
rmin = 0.0
rmax = 10.0
nbins = 20.0
binwidth = (rmax-rmin)/nbins
bin(x,w) = w*(floor((x-rmin)/w)+0.5)+rmin
set table "h1.dat"
plot "set1.dat" u (bin($2,binwidth)):(1.0) smooth freq w boxes noti
unset table
set table "h2.dat"
plot "set2.dat" u (bin($2,binwidth)):(1.0) smooth freq w boxes noti
unset table
我想将直方图h1和h2绘制在彼此的顶部(rowstack
)。应该注意的是,h1.dat
和h2.dat
的最后一行标有u
(而不是i
),这在某种程度上似乎会破坏情节。然后我尝试了以下
set style data histogram
set style histogram rowstack
set boxwidth 0.9*binwidth
plot "< grep i h2.dat" u 1:2 w boxes noti, "< grep i h1.dat" u 1:2 w boxes noti
哪个给了我
单独地,两个直方图很好。但他们几乎不遵循rowstack
- 堆叠方法。我尝试将u 1:2
替换为u 2
,因为周围的所有示例似乎都在使用它。但随后每个单位都放置了垃圾箱而不是每半个单元。我想,我可以使用u 2:xtic(1)
来解决。但无论如何,第二个(红色)直方图向下移动到光谱的左侧。
我的问题很简单:为什么第二个直方图堆叠不在第一个直方图上?