如何使用多个参数绘制一个函数的多个图?

时间:2015-06-03 08:36:49

标签: gnuplot

让我们说我的高压力函数是:

 P(h) = p0 * exp(-h/scale)

我想为不同的行星绘制一套情节;相同的图形(画布)但不同的p0scale参数,每个行星的一对(加上行星的名称)。

我是否必须输入" multiplot"并在为每组参数调用相同的scale =之前重新分配p0 =plot P(h),还是有更简洁的方法来获取这样的一组图表?

1 个答案:

答案 0 :(得分:2)

您可以定义三个不同的空格分隔字符串来保存参数,然后迭代它们:

p0 = "1 2 3 4"
scale = "0.1 0.2 0.3 0.4"
planets = "First Second Third Fourth"

P(h, n) = (1.0*word(p0, n)) * exp(-h/(1.0*word(scale, n)))
plot for [i=1:words(planets)] P(x, i) title word(planets, i)

1.0*用于将相应字符串“转换”为数字。丑,但有效。如果你想要它更清洁一点,你可以定义函数p0scale以根据迭代参数返回一个数字

p0(n) = (n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : 4)
scale(n) = (n==1 ? 0.1 : n==2 ? 0.2 : n==3 ? 0.3 : 0.4)
P(h, n) = p0(n)*exp(-h/scale(n))
plot for [i=1:words(planets)] P(x, i) title word(planets, i)