在Gnuplot中从数据文件中的列生成x轴tics

在Gnuplot中从数据文件中的列生成x轴tics,plot,gnuplot,Plot,Gnuplot,我有一个以下格式的数据文件 /foo.jsp 1234 /bar.jsp 6653 /foobar.jsp 9986 /bar.jsp 2221 /foo.jsp 5643 我想在Gnuplot中绘制这个文件,其中x轴上的tic取自第一列,y轴上的值取自第二列。为了举例说明,我希望图表如下所示: 10000 x x 5000 x x x 0 /foo.jsp /bar.jsp /foobar.jsp 其中x是图

我有一个以下格式的数据文件

/foo.jsp 1234
/bar.jsp 6653
/foobar.jsp 9986
/bar.jsp 2221
/foo.jsp 5643
我想在Gnuplot中绘制这个文件,其中x轴上的tic取自第一列,y轴上的值取自第二列。为了举例说明,我希望图表如下所示:

10000    x           x
5000     x           x          x
0      /foo.jsp /bar.jsp /foobar.jsp
其中x是图表中的点

我所做的最好的事情是:

plot "datafile.dat" using 2:xticlabel(1) with points

但是,该命令会对第一列中的每个值重复tics(即,我在x轴上得到两个/foo.jsp tics)。我希望第一列中的每个唯一字符串都有一个唯一的tic。

我认为您应该包括一个只包含x数字的列,比如foo.jsp=1、bar.jsp=2等。假设您将其放在第一列中

因此,您的数据文件如下所示:

1 foo.jsp 1234
2 bar.jsp 6653
3 foobar.jsp9986
2 bar.jsp 2221
1 foo.jsp 5643

然后使用:

plot "datafile.dat" using 1:3:xtic(2) with points

我想你的意思是我应该在上面的第二列中为每个唯一的字符串输入唯一的数字?如果我在这里尝试的话,这似乎有效。然而,这需要进行预处理,将每个标签与一个数字相关联。这是可行的,但如果我们能够避免,那将是最好的。谢谢你的提示。这将是:使用2:xtic(1)和点绘制“datafile.dat”,我检查了它,它可以工作,但它看起来非常类似于你的初始解决方案。此外,如果你真的想在xlabel“foo.jsp”上面加2点,你必须在“foo.jsp”前面加上一个唯一的数字我们可能会使用该解决方案来预处理数据文件,并为每个JSP添加一个唯一的ID。您能否编辑您的答案,以包含具有相同名称的jsp的唯一id,我将接受它?我更新了解决方案,每个jsp现在都有自己的(唯一)id,并且生成的图与您在问题中描述的图类似。