在Gnuplot中从数据文件的列制作x轴刻度

19

我有一个数据文件,格式如下。

/foo.jsp 1234
/bar.jsp 6653
/foobar.jsp 9986
/bar.jsp 2221
/foo.jsp 5643

我想在Gnuplot中绘制此文件,其中x轴上的刻度取自第一列,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

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

1个回答

25
我认为你应该包括一个只有x数的列,比如foo.jsp=1,bar.jsp=2等等,并将其放在第一列。
所以你的数据文件应该如下所示:
1 foo.jsp 1234
2 bar.jsp 6653
3 foobar.jsp 9986
2 bar.jsp 2221
1 foo.jsp 5643
然后使用:
plot "datafile.dat" using 1:3:xtic(2) with points

我理解你的意思是我应该在上面的第二列中为每个唯一的字符串放置唯一的数字?如果我在这里尝试,似乎可以工作。然而,这需要预处理来将每个标签与一个数字关联起来。虽然可行,但最好能避免这样做。谢谢你的建议。 - K Erlandsson
那将是:plot "datafile.dat" using 2:xtic(1) with points,我检查过它,它可以工作,但它看起来非常类似于您最初的解决方案。 - Martin
此外,如果您真的想要在xlabel“foo.jsp”上方有2个点,您将不得不在“foo.jsp”之前放置一个唯一的数字。 - Martin
我们可能会采用预处理数据文件并为每个JSP添加唯一ID的解决方案。你能否编辑你的答案,包括相同名称的jsp的唯一ID,我会接受它? - K Erlandsson
我更新了解决方案,每个JSP现在都有自己的(唯一)ID,并且生成的图表看起来与您在问题中描述的相同。 - Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接