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

如何使用gnuplot绘制多条顶部底线?,plot,gnuplot,Plot,Gnuplot,我需要一点帮助,我正在为我的科学研究写一个程序。我们有很多数据,我必须用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.

我需要一点帮助,我正在为我的科学研究写一个程序。我们有很多数据,我必须用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 深度(mm);圆形(百分比),;中间价(%);阿隆加多(%) 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) 设置数据文件分隔符“;” 设置术语png大小800600字体“Times New Roman,10” 设置输出“test.png” 设置点大小2 设置范围[0:40] 设置xlabel“映射(%)” 设置ylabel“深度(mm)” 将比例设置为0.0 将网格设置为y 设置两个选项 startcol=2 endcol=4 [col=startcol:endcol]“test.csv”u col:x2tic(1)w linespoints title columnheader(col)的绘图

你有什么想法来解决这个问题,我应该采取什么步骤


提前谢谢。

我不太确定我是否完全理解你想要什么

gnuplot代码似乎希望将第1列的值作为轴标签(tics)。excell示例看起来像一个带有拟合函数的散点图。第一部分,散点图,很容易解释。对于适合度,需要更多信息,最重要的是,您想要什么类型的适合度?样条曲线

非常简单的xy图:

plot "test.csv" using ($2):($1), "" u ($3):($1), "" u ($4):($1)
using
指定用于x:y的列。逗号分隔点集<代码>使用缩短为
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"
\
允许写多行,确保行结束在它之后,没有空格、注释或其他字符。
移动到下一行,并像以前一样对数据集进行分隔<代码>带点或
w p
设置数据以显示为点
title
t
设置要在键中显示的标题。可以使用不同的命令
设置键
,例如
设置右下角的键
,来移动此键

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


在这个例子中,我使用的是点,而不是直线或直线点,因为这将简单地将数据点与直线连接起来。在您的示例中,您需要更复杂的曲线。通过在web上搜索“fitting gnuplot”查找您想要的内容。

谢谢!我相信这会有帮助。我会尽快尝试。我不确定在您的帮助下得到的结果应该发布到哪里,但最终的脚本是:set style data points set pointsize 1 set yrange[35:0]set x2label“MAP(%)”set x2tics plot for[col=startcol:endcol]“test.csv”u col:1 w linespoints lt col pt col title columnheader(col)谢谢你的回复。我很高兴能帮上忙。