GNUPLOT:如何使用函数来决定打印样式

时间:2014-03-30 10:49:28

标签: function gnuplot

我在1个情节中画了很多系列。我想根据系列的数量来决定情节风格/类型。以下是我的目标示例代码:

title(i)=value(sprintf("title%i",i))
title1='x'
title2='x^2'
title3='x^3'
...

with(i)=value(sprintf("with%i",i))
with1='lines'
with2='points'
with3='boxes'
...

plot for [i=1:100] '-' title title(i) with with(i)

我测试了title()函数的工作原理。但是with功能无法正常工作。

你能帮我解决一下代码吗?

或者您认为还有其他方法可以实现我的目标吗?

1 个答案:

答案 0 :(得分:1)

可以构建一个plot命令字符串,然后运行该字符串:

p="plot x linewidth 1"
do for [i=1:10]{
    p=p.sprintf(", x+%d linewidth %d", i, i+1)
}


print p

eval(p)

打印命令的输出为:

plot x linewidth 1, x+1 linewidth 2, x+2 linewidth 3, ...

这是结果图:

根据您最终想要的内容,这可能适合您:

do for [i=1:10]{
    p=p.(i==1 ? "'myData.csv' with lines" : "")
    p=p.(i==2 ? "'myData.csv' with steps" : "")
    ...

}

然而,这看起来很丑陋。