GNU plots_Plotting给定值集的直方图与其出现次数的关系


2

我们如何将包含所有数据的csv文件中的直方图绘制到单个列中。我需要将这些值与它们重复的次数进行对比。


请添加下,你使用的gnuplot使用手术系统信息这个链接
哈斯塔

Answers:


1

在gnuplot中有一个广泛使用的技巧来构建直方图。如果您的数据在文件中mydata.csv,您可以尝试类似的东西

binwidth=1                          # here you can set the bin width 
bin(x,width)=width*floor(x/width)   # here the binning function
plot "mydata.csv" using (bin($1,binwidth)):(1.0) smooth freq with boxes

因此,您要根据箱宽度构建直方图。
以更精细的方式,您可以尝试以下建议,例如此处

Min = 1.0  # where binning starts
Max = 12.0 # where binning ends
n = 11 # the number of bins
width = (Max-Min)/n # binwidth is evaluates to 1.0
bin(x,width) = width*(floor((x-Min)/width)+0.5) + Min
plot "mydata.csv" using (bin($1,width)):(1.0) smooth freq with boxes

现在,我能够绘制直方图,但需要规范化出现次数。我从另一个论坛获取帮助以定义变量和,但我无法绘制标准化值。我正在使用这些命令。set ylabel'f / n_f'set xlabel'k_ {ij} ^ {n} / k_ {0} ^ {n}'set xtics 0.2 set ytics 2 binwidth = 0.1 set boxwidth binwidth sum = 0 s(x)=(( sum = sum + 1),0)bin(x,width)= width floor(x / width)+ binwidth / 2.0 plot“mydata.csv”u(bin($ 1,binwidth)):( 1.0 /(binwidth sum) )光滑的freq w box
2015年

正如您所看到的那样,在评论中发布许多代码行通常会导致不那么干净。顺便说一句,多个问题应该在不同的帖子中分成不同的问题。这将有助于其他有类似疑问的人。:)
Hastur 2015年

根据我的理解,你永远不会使用其他一些情节调用 s(x)你的数据文件,因此你没有更新它的值sum。在Linux或OS下,您可以通过系统调用wc -l mydata.csv或通过调用来设置它awk...另一个问题,我会更简单地给你一个答案。
哈斯图尔2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.