2015-06-21 114 views
2

我有一个数据文件,它看起来是这样的:如何在gnuplot中绘制两条拟合线的交点?

# Test of 6 
0.1 3.2 
0.4 5.9 
0.7 8.0 
0.9 10.1 


0.1 1.5 
0.4 4.3 
0.7 9.5 
0.9 13.5 

# Test of 10 
0.1 5.5 
0.4 6.3 
0.7 6.9 
0.9 8.5 


0.1 0.5 
0.4 3.3 
0.7 8.5 
0.9 15.5 

# Test of 15 
0.1 12.5 
0.4 13.3 
0.7 13.5 
0.9 15.5 


0.1 1.5 
0.4 7.3 
0.7 15.5 
0.9 16.5 

然后我使用的gnuplot找到每组拟合线,和两个拟合线的交叉点:

set terminal pngcairo enhanced 
set output 'image.png' 

unset key 

set xrange [0:20] 
set yrange [0:1] 

f(x) = a*x + b 
g(x) = c*x + d 

fit f(x) "data.dat" i 0 u 1:2 via a,b 
fit g(x) "data.dat" i 1 u 1:2 via c,d 
p1 = (d - b)/(a - c) 
fit f(x) "data.dat" i 2 u 1:2 via a,b 
fit g(x) "data.dat" i 3 u 1:2 via c,d 
p2 = (d - b)/(a - c) 
fit f(x) "data.dat" i 4 u 1:2 via a,b 
fit g(x) "data.dat" i 5 u 1:2 via c,d 
p3 = (d - b)/(a - c) 

# what is the real way? 
# set label at 6, p1 "" point pointtype 7 pointsize 2 
# set label at 10, p2 "" point pointtype 7 pointsize 2 
# set label at 15, p3 "" point pointtype 7 pointsize 2 
# plot 1/0 

我可以使用标签来设置我想要的点,但我真的很想找到适合这些点的线。我想我可以这样做,如果我可以治疗(6,p1); (10,P2); (15,p3)作为数据文件。但我该怎么做,或者有更简单的方法?

+0

这是一个gnuplot的问题,不是乳胶! –

+0

对不起。我看到一堆gnuplot问题,所以我认为它可能在这里工作。也许我应该把它移到堆栈溢出?我可以标记自己的帖子吗?它不会让我标志它被移到SO ...哦,也许有人可以移动它。 – user1794469

+0

是的,那样更好。 'gnuplot'标签提供了如何在gnuplot中使用'LaTeX'或如何从LaTeX运行中调用gnuplot的问题。 –

回答

1

好的,我找到了一个解决方案。 Gnuplot命名了数据块。您既可以打印数据块,也可以绘制数据块。从这个问题中的数据,最终的打印文件是:

set terminal pngcairo enhanced 
set output 'image.png' 

unset key 

set xrange [0:20] 
set yrange [0:1] 

f(x) = a*x + b 
g(x) = c*x + d 

fit f(x) "data.dat" i 0 u 1:2 via a,b 
fit g(x) "data.dat" i 1 u 1:2 via c,d 
p1 = (d - b)/(a - c) 
fit f(x) "data.dat" i 2 u 1:2 via a,b 
fit g(x) "data.dat" i 3 u 1:2 via c,d 
p2 = (d - b)/(a - c) 
fit f(x) "data.dat" i 4 u 1:2 via a,b 
fit g(x) "data.dat" i 5 u 1:2 via c,d 
p3 = (d - b)/(a - c) 

set print $points 
print 6,p1 
print 10,p2 
print 15,p3 

fit f(x) $points u 1:2 via a,b 
plot $points w p pt 7 ps 2, f(x) 

这将产生一个PNG这样的: Ermahgerd, it werks!

+0

我将不胜感激,如果你可以看看这个问题:https://stackoverflow.com/questions/44264824/gnuplot-intersection-of-two-plots –