我正在为我的科学研究所编写的程序提供一些帮助。我们有很多数据,我必须用Java创建一个程序来读取所有这些,制作一些微积分并绘制结果。 我想要的是绘制这样的东西(使用Excel制作):
输入数据如下所示:
Profundidade (mm);Circular (%);Intermediário (%);Alongado (%) 27.78;0;0;0 26.1;0;0;0 25.26;0.0134911243;0;0 24.42;0;0;0 23.58;0;0;0 22.74;0;0;0 21.06;0;0;0 20.22;0.0357396450;0;0 19.38;0;0;0 18.54;0;0;0 17.70;0;0;0 16.86;0;0;0
使用下面的代码,我们得到以下结果:
set datafile separator ";" set term png size 800,600 font "Times New Roman, 10" set output 'test.png' set pointsize 2 set y2range[0:40] set xlabel 'MAP (%)' set ylabel 'Profundidade (mm)' set tics scale 0.0 set grid y set x2tics startcol = 2 endcol = 4 plot for [col=startcol:endcol] 'test.csv' u col:x2tic(1) w linespoints title columnheader(col)
您有什么想法可以解决这个问题,我应该采取什么措施?
提前致谢。
答案 0 :(得分:0)
我不太确定我完全理解你想要的东西。
gnuplot代码看起来像是要将第1列的值作为轴标签(tics)。 excell示例看起来像具有拟合函数的散点图。第一部分,散点图,很容易解释。为了更合适,需要更多的信息,最重要的是,你想要什么类型的合身?花键?
一个非常简单的xy情节:
plot "test.csv" using ($2):($1), "" u ($3):($1), "" u ($4):($1)
using
指定用于x:y的列。逗号分开各点; using
缩短为u
。还有第一行,就是在路上,最简单的方法是在dat文件中用#注释掉它,然后你可以命名这些点。
plot "test.csv" u ($2):($1) with points title "Circular"\
, "" u ($3):($1) w p t "Intermediário"\
, "" u ($4):($1) w p t "Alongado"
\
允许多行写入,确保行后面的行结束,没有空格,注释或其他字符。 ,
移动到下一行,并像以前一样分隔数据集。 with points
或w p
将数据设置为点数。 title
或t
设置要在密钥中显示的标题。可以使用不同的命令set key
移动此命令,例如set key bottom right
。
如果您不想在数据文件的第一行注释掉,可以在every ::1
之后直接使用using
参数,并查看从数据行获取标题。
在示例中,我使用了点而不是线或线点,因为这只是将数据点与线连接起来。在您的示例中,您需要更复杂的曲线。通过在网上搜索“拟合gnuplot”来查找你想要的东西。