Graph 包含值范围的文本文件中的图形

Graph 包含值范围的文本文件中的图形,graph,gnuplot,Graph,Gnuplot,我有一个文本文件,其中包含如下数字: 0.00 0.12 0.35 0.78 0.93 1.12 1.45 1.54 1.67 1.89 1.99 2.01 2.59 2.82 0 0.12 0.35 0.78 0.93 1.12 1.45 1.54 1.67 1.89 1.99 2.01 2.59 2.82 现在我必须用下面的方法构造一个图,对于上面的值,我应该得到3个点,(1,5),(2,6)和(3,3),因为在0.00和1.00之间有5个数字,在1.01和2.00之间有6个数字,同样在2.

我有一个文本文件,其中包含如下数字:

0.00 0.12 0.35 0.78 0.93 1.12 1.45 1.54 1.67 1.89 1.99 2.01 2.59 2.82 0 0.12 0.35 0.78 0.93 1.12 1.45 1.54 1.67 1.89 1.99 2.01 2.59 2.82
现在我必须用下面的方法构造一个图,对于上面的值,我应该得到3个点,(1,5),(2,6)和(3,3),因为在0.00和1.00之间有5个数字,在1.01和2.00之间有6个数字,同样在2.01和3.00之间有3个数字,这是最好的方法(语言,工具等)要继续下去???

这个用C#编写的小示例可能是一个很好的起点:

List<double> list = new List<double>() {
     0.00,0.12,0.35,0.78,0.93,1.12,1.45,1.54,
     1.67,1.89,1.99,2.01,2.59,2.82};
int maxval = (int)list.Max();
Dictionary<int, int> dict = new Dictionary<int, int>();
for (int i = 0; i <= maxval; i++)
     dict.Add(i + 1, list.Count(item => (int)item >= i && (int)item < (i + 1)));
您应该检查值是否真的是双倍的(可能使用
Double.TryParse(…)
)。

最后:即使数字没有在列表中排序,我的函数也能工作。

这个用C#编写的小示例可能是一个很好的起点:

List<double> list = new List<double>() {
     0.00,0.12,0.35,0.78,0.93,1.12,1.45,1.54,
     1.67,1.89,1.99,2.01,2.59,2.82};
int maxval = (int)list.Max();
Dictionary<int, int> dict = new Dictionary<int, int>();
for (int i = 0; i <= maxval; i++)
     dict.Add(i + 1, list.Count(item => (int)item >= i && (int)item < (i + 1)));
您应该检查值是否真的是双倍的(可能使用
Double.TryParse(…)
)。

最后:即使数字没有在列表中排序,我的函数也能工作。

所需的数据可以用一个简单的
awk
脚本生成,然后用任何绘图实用程序(如
gnuplot
)进行绘图

使用
awk
生成数据:

awk '{bins[int($1)] += 1} END {for(i in bins){print i, bins[i]}}' yourdata.dat > plotdata.dat
然后可以使用
gnuplot
命令轻松绘制数据:

plot 'plotdata.dat'

可以使用简单的
awk
脚本生成所需的数据,然后使用任何绘图实用程序(如
gnuplot
)进行绘图

使用
awk
生成数据:

awk '{bins[int($1)] += 1} END {for(i in bins){print i, bins[i]}}' yourdata.dat > plotdata.dat
然后可以使用
gnuplot
命令轻松绘制数据:

plot 'plotdata.dat'

实际上,从一个文本文件中读取了数千个这样的值,我只是给出了一个示例:)它不是最大值,我想要每个整数之间存在的值的数量:)@HariKrishna:first:
列表
可以很容易地从文件中读取;第二:
maxval
用于
循环,以知道在哪里停止,但是
dict
建立在0和
maxval
之间的每个整数上(请参见
i++
)@HariKrishna:看看我编辑的answer@HariKrishna当前位置你解决问题了吗?我的函数正确吗?是的,谢谢:)它正确:)我也这样做了,忘了检查:)现在必须将这些值绘制到图表:)谢谢..实际上从文本文件中读取了数千个这样的值,我只是给出了一个示例:)它没有最大值,我希望每个整数之间存在的值的数量:)@HariKrishna:first:
列表可以很容易地从文件中删除;第二:
maxval
用于
循环,以知道在哪里停止,但是
dict
建立在0和
maxval
之间的每个整数上(请参见
i++
)@HariKrishna:看看我编辑的answer@HariKrishna当前位置你解决问题了吗?我的函数正确吗?是的,谢谢:)它正确:)我也这样做了,忘了检查:)现在必须将这些值绘制到图表:)谢谢..我在windows中以上述方式执行此操作:)无论如何,希望此答案对其他人有帮助:)我在windows中以上述方式执行此操作:)无论如何,希望此答案对其他人有帮助:)