如何使用gnuplot绘制多个顶部底线?

时间:2016-02-29 20:53:27

标签: plot gnuplot

我正在为我的科学研究所编写的程序提供一些帮助。我们有很多数据,我必须用Java创建一个程序来读取所有这些,制作一些微积分并绘制结果。 我想要的是绘制这样的东西(使用Excel制作):

Using 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)

Result so far

您有什么想法可以解决这个问题,我应该采取什么措施?

提前致谢。

1 个答案:

答案 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 pointsw p将数据设置为点数。 titlet设置要在密钥中显示的标题。可以使用不同的命令set key移动此命令,例如set key bottom right

如果您不想在数据文件的第一行注释掉,可以在every ::1之后直接使用using参数,并查看从数据行获取标题。

在示例中,我使用了点而不是线或线点,因为这只是将数据点与线连接起来。在您的示例中,您需要更复杂的曲线。通过在网上搜索“拟合gnuplot”来查找你想要的东西。