Gnuplot 通过选择水平轴上的范围来拟合图形和绘制线
我试着画一张图,用一条直线拟合它Gnuplot 通过选择水平轴上的范围来拟合图形和绘制线,gnuplot,Gnuplot,我试着画一张图,用一条直线拟合它 f1(x)=a1+b1*x fit [0:80] f1(x) 'diff-xy-bcmLyo25perS.dat' via a1,b1 f2(x)=a2+b2*x fit [100:220] f2(x) 'diff-xy-bcmLyo25perS.dat' via a2,b2 我尝试使用命令将两个图绘制到同一个图形中: f(x) = x < 60 ? f1(x) : f2(x) plot 'diff-xy-bcmLyo25perS.dat' u
f1(x)=a1+b1*x
fit [0:80] f1(x) 'diff-xy-bcmLyo25perS.dat' via a1,b1
f2(x)=a2+b2*x
fit [100:220] f2(x) 'diff-xy-bcmLyo25perS.dat' via a2,b2
我尝试使用命令将两个图绘制到同一个图形中:
f(x) = x < 60 ? f1(x) : f2(x)
plot 'diff-xy-bcmLyo25perS.dat' using 1:2 with lines linestyle 1 title "{/Symbol b}BCMal-C_{12}C_{8}", f(x) lw 3.0 lc rgb 'black'
f(x)=x<60?f1(x):f2(x)
使用1:2和线条样式1标题“{/Symbol b}BCMal-C{12}C{8}”、f(x)lw 3.0 lc rgb“黑色”绘制“diff-xy-bcmLyo25perS.dat”
我得到了上面的情节
在这幅图中,我们可以看到有两条线以80度(水平比例)相交,它的形状像“v”
我希望消除“v”形交叉点,我希望得到两条单独的线,一条从0到80,另一条从100到220
我怎么能得到这个
谢谢你的帮助
提前谢谢 您可以利用gnuplot不绘制
infinity
和NaN
值(如1.0/0
)
使用
编辑:
对不起,这和谢尔盖·伊兹梅洛夫的答案基本上是一样的,我没有回答
回答:
使用特殊文件“+”
,该文件为绘图提供x个值,然后可以使用您选择的函数进行采样,包括在输入超出范围时忽略输入的函数。然后您可以直接使用您的f1(x)
和f2(x)
:
plot "+" using ($1):(0 < $1 && $1 < 80 ? f1($1) : 1/0), \
"+" using ($1):(100 < $1 && $1 < 220 ? f2($1) : 1/0)
使用($1)绘制“+”:(0<$1&$1<80?f1($1):1/0)\
“+”使用($1):(100<$1&$1<220?f2($1):1/0)
使用gnuplot 5.0,您可以为不同的功能指定不同的范围:
set style data lines
plot 'diff-xy-bcmLyo25perS.dat' using 1:2 ls 1, \
[0:80] f1(x) lw 3.0 lc rgb 'black',\
[100:220] f2(x) lw 3.0 lc rgb 'black'
请注意,这只起作用,因为首先要打印数据文件。仅绘图
plot [0:80] f1(x), [100:220] f2(x)
不起作用,因为第一个范围设置相当于全局设置xrange[0:80](一直如此),所以第二个功能根本不可见
不过,在您的情况下,它应该可以正常工作。谢谢您的回复。我安装了GNUPLOT 5.0并尝试运行现有的脚本进行打印,但出现了一个错误,即“未知或不明确的终端类型;仅为列表键入“set terminal”。为什么PNG不起作用?我配置为(./configure--with cairo)。是否需要进行任何调整?但是,我使用了postscript终端,它工作正常。我不知道,可能您没有所有的库标题,请在运行
/configure
后查看屏幕输出,或者查看config.log
了解详细信息。亲爱的#Christoph,我将线条样式定义为(设置样式行1 lt 1 lc rgb“red”lw 2.0)。当我在plot命令中使用它时(使用1:2 ls 1绘制'diff-xy-bcmLyo25perS.dat',我得到的线型为“+”。我试图得到简单的实线,但我做不到。你能解释一下为什么我得到“+”以及如何得到简单的线吗?谢谢使用打印指定打印样式。。。带行
set style data lines
plot 'diff-xy-bcmLyo25perS.dat' using 1:2 ls 1, \
[0:80] f1(x) lw 3.0 lc rgb 'black',\
[100:220] f2(x) lw 3.0 lc rgb 'black'
plot [0:80] f1(x), [100:220] f2(x)