gnuplot截断小数位数

gnuplot截断小数位数,gnuplot,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 s

我想绘制一些库存数据。
数据位于一个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(数据文件中的列标题)和测量材料的单位

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


如何才能使我的点位于正确的y值?

很遗憾,您没有显示文件中的任何数据,但我猜您正在使用逗号作为十进制分隔符。在这种情况下,您需要设置正确的十进制符号来读取输入。你可以用

set decimalsign locale
或使用显式区域设置(必须安装)


请注意,使用
set decimalsign',“
设置显式字符不起作用,因为它通常只影响tics等的输出格式,而不影响输入行为。

非常感谢,这太好了!但是变量“maxplot”仍然包含截止版本。谢谢,找到了。额外感谢您添加有关指定小数位数数量的信息
set decimalsign locale "de_DE.UTF-8"