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
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是命令行参数,表示材料编号(数据文件中的列标题)和测量材料的单位。

我的数据文件中的x值是小数,但gnuplot似乎去掉了小数。例如,12,98(由于是德国库存,所以使用逗号作为小数分隔符)会产生y=12的数据点。
我不确定,但我认为这种情况只发生在最大和最小y值时,因为STATS_max每次都是一个整数。

我该怎么做才能使我的点处于正确的y值?

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

set decimalsign locale

或使用明确的区域设置(必须安装)

set decimalsign locale "de_DE.UTF-8"

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

最新更新