如何为具有多个参数的一个函数绘制多个图?
How to draw a number of plots for one function with multiple parameters?
假设我的高度压力函数是:
P(h) = p0 * exp(-h/scale)
我想为不同的行星绘制一组图;相同的图表 (canvas) 但不同的 p0
和 scale
参数,每个行星一对(加上行星名称)。
在为每组参数调用相同的 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'将相应的字符串转为数字。丑陋,但有效。如果你想让它更干净一点,你可以定义函数 p0
和 scale
到 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)
假设我的高度压力函数是:
P(h) = p0 * exp(-h/scale)
我想为不同的行星绘制一组图;相同的图表 (canvas) 但不同的 p0
和 scale
参数,每个行星一对(加上行星名称)。
在为每组参数调用相同的 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'将相应的字符串转为数字。丑陋,但有效。如果你想让它更干净一点,你可以定义函数 p0
和 scale
到 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)