如何为具有多个参数的一个函数绘制多个图?

How to draw a number of plots for one function with multiple parameters?

假设我的高度压力函数是:

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

我想为不同的行星绘制一组图;相同的图表 (canvas) 但不同的 p0scale 参数,每个行星一对(加上行星名称)。

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

您可以定义三个不同的 space 分隔字符串来保存参数,然后遍历它们:

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*用于'convert'将相应的字符串转为数字。丑陋,但有效。如果你想让它更干净一点,你可以定义函数 p0scale 到 return 一个数字,具体取决于迭代参数

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)