Gnuplot脚本,用于现有绘图中的循环或添加到现有绘图中
我想在gnuplot中以设定的间隔绘制一系列垂直线 关于情节的一些信息 绘图主要是来自.dat文件的一些数据。gnuplot脚本由bash脚本调用,bash脚本使用sed修改gnuplot脚本。这是一个旧bash脚本的狙击手(我敢肯定是丑陋的) 用这个。plt文件看起来像这样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
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;