gnuplot: 改变 x 轴的值

4

我有一个名为frequency.txt的文件,其中存储了从一个文件中获取的字母频率:

a  1619     1029 
c  1023     299 
b  208      55 
e  2238     694 
d  737      128 
g  230      42 
f  191      93 
i  2064     716 
h  91       8 

我想用这些值做一个图表,但我希望文件第一列中出现的字母表示在图表中出现在x轴上的值。我尝试修改xtics如下:

set xtics ('a' 1,'c' 2,'b' 3,'e' 4,'d' 5,'g' 6,'f' 7,'i' 8, 'h' 9) 

但是这似乎很繁琐,我相信一定有更好的方法来完成这个任务。
以下是制作图表的完整代码:
set size 1.0 , 0.6
set terminal postscript portrait enhanced color dashed lw 1 "Helvetica" 14
set output "comparison_percentages.eps"
set autoscale
set xtics ('a' 1,'c' 2,'b' 3,'e' 4,'d' 5,'g' 6,'f' 7,'i' 8, 'h' 9) set ytic auto
set boxwidth 10
set xlabel "Letters"
set ylabel "Percentages"
plot "frequency.txt" using 1:2 with lines t "Website", \
"frequency.txt" using 1:3 with lines t "Python"

我该如何修改代码,以便它也能读取文件的第一列并使用其中的字母作为x轴?

1个回答

3

对于这个任务,您可以在using语句中使用xticlabels命令(还请参考最近的问题gnuplot arbitrary labeling x - axis):

set xlabel "Letters"
set ylabel "Percentages"
set style data lines
plot "frequency.txt" using 2:xticlabels(1) t "Website", \
     "" using 3 t "Python"

使用4.6.5版本的结果如下图所示:

enter image description here


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