Gnuplot脚本,用于现有绘图中的循环或添加到现有绘图中

Gnuplot脚本,用于现有绘图中的循环或添加到现有绘图中,gnuplot,Gnuplot,我想在gnuplot中以设定的间隔绘制一系列垂直线 关于情节的一些信息 绘图主要是来自.dat文件的一些数据。gnuplot脚本由bash脚本调用,bash脚本使用sed修改gnuplot脚本。这是一个旧bash脚本的狙击手(我敢肯定是丑陋的) 用这个。plt文件看起来像这样 set title "Viscosity vs Time, C = CONCEHOLD, beta = RATHOLD, zeta = ZETAHOLD" set xlabel "Time" set ylabel "Vis

我想在gnuplot中以设定的间隔绘制一系列垂直线

关于情节的一些信息

绘图主要是来自.dat文件的一些数据。gnuplot脚本由bash脚本调用,bash脚本使用sed修改gnuplot脚本。这是一个旧bash脚本的狙击手(我敢肯定是丑陋的)

用这个。plt文件看起来像这样

set title "Viscosity vs Time, C = CONCEHOLD, beta = RATHOLD, zeta = ZETAHOLD"
set xlabel "Time"
set ylabel "Viscosity"
plot "viscout.dat" using 3:2 title 'Viscosity'
# Saving to my-plot.ps
load save.plt
#
我想在这个图中添加一系列垂直线,以设定的重复间隔。我发现了如何通过绘制垂直线

我想要

const=repititionperiod*i
其中i是属于(1,CalculatedAppedLimit)的整数

我可以通过sed再次输入repititionperiod,并以类似的方式计算appedlimit,但需要gnuplot中的某种for循环,或者需要一个单独的gnuplot脚本,在bash脚本中的for循环中向已经创建的绘图添加一条垂直线

我在gnu绘图或添加到先前创建的绘图中找不到有关循环的任何信息


感谢您的建议。

编辑:Gnuplot现在确实支持for循环,您可以阅读它

据我所知,gnuplot没有for循环,尽管您可以生成如下排序之一:

创建一个包含以下内容的文件“loop.gp”

const  = const + 1
#... some gnuplot commands ... 
if(const<100) reread
这将为您提供一个简单的循环

(此示例取自的杂项部分)

对于您的特定答案,您可以尝试添加箭头而不是平行线, 例如

我也会做同样的事情

在这种情况下,loop.gp可能是

const  = const + repititionperiod
#... some gnuplot commands ...  
set arrow from const,1 to const,4 nohead
if(const<calculatedupperlimit) reread
replot绘制箭头

如果你“只是”想要线条而不是其他东西,那么你需要输入一个图形来实际绘制(一组箭头不起作用)。然后你给出的例子可以用来绘制第一条垂直线

希望这有帮助

汤姆

const  = const + 1
#... some gnuplot commands ... 
if(const<100) reread
const = 3; load "loop.gp";
set arrow from const,1 to const,4 nohead
const  = const + repititionperiod
#... some gnuplot commands ...  
set arrow from const,1 to const,4 nohead
if(const<calculatedupperlimit) reread
const = 1; repititionperiod=2;calculatedupperlimit = 10; load "loop.gp"; replot;