我想绘制一些库存数据
数据位于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的输出格式,而不影响输入行为。