gnuplot切断小数位数

时间:2013-08-12 12:06:34

标签: gnuplot

我想绘制一些库存数据 数据位于csv文件中,我已经得到了几乎准确的图,所以从文件中读取不是问题。

set terminal pdf
set output "gnuplot/".MATNUM."-2012.pdf"

set datafile separator ";"

stats 'Stock-2012.csv' every ::4::18 using MATNUM nooutput

set border 3
set tics nomirror
set xzeroaxis

set xrange[0:14]
set xtics 1,1,13
set xtics rotate 90

set ylabel MATUNIT

maxplot = sprintf("Amount max:\n%.2f ".MATUNIT, STATS_max)
plot 'Stock-2012.csv' every ::4::18 using ($0+1):MATNUM:xticlabels(2) with linespoints title "Amount", STATS_max with lines lc rgb 'blue' title maxplot

MATNUM和MATUNIT是命令行参数,表示materialnumber(数据文件中的columntitle)和测量材料的单位。

我的数据文件中的x值是小数,但是gnuplot似乎会截断小数位数。例如12,98(逗号用作小数分隔符,因为它是德国的库存)导致y = 12的数据点。
我不确定,但我认为这只发生在最大和最小y值,因为STATS_max每次都是一个整数。

我能做些什么才能让我的积分达到正确的y值?

1 个答案:

答案 0 :(得分:3)

不幸的是你没有显示你文件中的任何数据,但我猜你使用逗号作为小数分隔符。在这种情况下,您需要设置正确的小数符号来读取输入。你可以使用例如

set decimalsign locale

或使用显式语言环境(必须安装)

set decimalsign locale "de_DE.UTF-8"

请注意,使用set decimalsign ','设置显式字符不起作用,因为它通常仅影响例如输出格式。抽搐,但不是输入行为。