我想绘制一些库存数据 数据位于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值?
答案 0 :(得分:3)
不幸的是你没有显示你文件中的任何数据,但我猜你使用逗号作为小数分隔符。在这种情况下,您需要设置正确的小数符号来读取输入。你可以使用例如
set decimalsign locale
或使用显式语言环境(必须安装)
set decimalsign locale "de_DE.UTF-8"
请注意,使用set decimalsign ','
设置显式字符不起作用,因为它通常仅影响例如输出格式。抽搐,但不是输入行为。