x范围用于Gnuplot中的非数字数据

时间:2012-12-18 13:33:01

标签: gnuplot

运行以下脚本时,收到错误消息:

set terminal postscript enhanced color
set output '| ps2pdf - histogram_categorie.pdf'
set auto x
set key off
set yrange [0:20]
set style fill solid border -1
set boxwidth 5
unset border
unset ytic
set xtics nomirror
plot "categorie.dat" using 1:2 ti col with boxes

我收到的错误消息是

smeik:plots nvcleemp$ gnuplot categorie.gnuplot 

plot "categorie.dat" using 1:2 ti col with boxes
                                            ^
"categorie.gnuplot", line 13: x range is invalid

文件categorie.dat的内容是

categorie   aantal
poussin  13
pupil  9
miniem  15
cadet  15
junior  6
senior  5
veteraan  8

据我所知,问题是我没有定义x范围。如何让他使用第一列作为x范围的值?或者我是否需要将行号作为x范围并让他使用第一列作为标签?我正在使用Gnuplot 4.4。

我最终试图得到一个与我之前制作的情节相同的情节。那个工作正常,但在x轴上有数字数据。

set terminal postscript enhanced color
set output '| ps2pdf - histogram_geboorte.pdf'
set auto x
set key off
set yrange [0:40]
set xrange [1935:2005]
set style fill solid border -1
set boxwidth 5
unset border
unset ytic
set xtics nomirror
plot "geboorte.dat" using 1:2 ti col with boxes,\
     "geboorte.dat" using 1:($2+2):2 with labels

,文件geboorte.dat的内容为

decennium aantal
1940  2
1950  1
1960  3
1970  2
1980  3
1990  29
2000  30

1 个答案:

答案 0 :(得分:10)

boxes样式期望x值是数字。这很简单,我们可以给它伪列0,它实际上是脚本的行号:

plot "categorie.dat" using (column(0)):2 ti col with boxes

现在您可能想要以某种方式在图表的第一列中获取信息。我假设您希望这些字符串成为x-tics:

plot "categorie.dat" using (column(0)):2:xtic(1) ti col with boxes

*请注意,这可能不适用于您当前的boxwidth设置。您可能需要考虑set boxwidth 1plot ... with (5*column(0)):2:xtic(1) ...

编辑 - 根据上面发布的数据文件,我已经测试了上述两项修改以获得正确的盒宽,两者似乎都有效。