【发布时间】:2021-12-08 23:36:40
【问题描述】:
在绘制单个变量的函数时,我可以使用以下形式的命令绘制多个函数
plot x ti "first function",\
x**2.0 ti "second function"
我想对参数图做同样的事情,但这在我感兴趣的示例中不起作用。我为您制作了一个最小的工作示例:
K = 360.0/(2.0*pi);
k = 1.0/K;
xe(lambda) = (-1.0) * ( ((0.0 <= lambda) & (lambda < 180.0)) ? lambda: lambda - 360.0 )*k
ye(phi) = (log(1./cos(phi*k) + tan(phi*k)))
set parametric
set multiplot
PHI(t, d, GHA, omega) =pi/2.-acos(cos(omega) * sin(d)-cos(d) * cos(t) * sin(omega))
LAMBDA(t, d, GHA, omega) = ( lambda = -(atan((-sin(GHA) * (cos(d)* cos(omega)+cos(t) * sin(d) * sin(omega))+cos(GHA) * sin(omega) * sin(t))/(cos(d) * cos(GHA) * cos(omega)+sin(omega)* (cos(GHA) * cos(t) * sin(d)+sin(GHA)* sin(t)))) + (cos(d)* cos(GHA)* cos(omega) + sin(omega) * (cos(GHA)* cos(t) * sin(d) + sin(GHA) *sin(t)) >0.0 ? 0.0 : pi)) , lambda - 2.0*pi*floor(lambda/(2.0*pi)))
lambda_min = 170;
lambda_max = 190;
phi_min = 310;
phi_max = 80;
set xrange [xe(lambda_min):xe(lambda_max)]
set yrange [ye(phi_min):ye(phi_max)]
plot [0.:2.09 ] xe(K*LAMBDA(t, 0.46, 4.63, 1.25)), ye(K*PHI(t, 0.46, 4.63, 1.25)) lt 1 linecolor rgb "red" ti "A" ,\
[2.09:2.*pi] xe(K*LAMBDA(t, 0.46, 4.63, 1.25)), ye(K*PHI(t, 0.46, 4.63, 1.25)) lt 1 linecolor rgb "blue" ti "B"
开启
Gnuplot 版本 5.4 补丁级别 2 最后修改时间为 2021-06-01
但是,如果我将最后两行替换为
,将绘图命令拆分为单独的行plot [0.:2.09 ] xe(K*LAMBDA(t, 0.46, 4.63, 1.25)), ye(K*PHI(t, 0.46, 4.63, 1.25)) lt 1 linecolor rgb "red" ti "A"
plot [2.09:2.*pi] xe(K*LAMBDA(t, 0.46, 4.63, 1.25)), ye(K*PHI(t, 0.46, 4.63, 1.25)) lt 1 linecolor rgb "blue" ti "B"
我想通过保留第一个绘图命令来获得第二个图形结果
plot [0.:2.09 ] xe(K*LAMBDA(t, 0.46, 4.63, 1.25)), ye(K*PHI(t, 0.46, 4.63, 1.25)) lt 1 linecolor rgb "red" ti "A" ,\
[2.09:2.*pi] xe(K*LAMBDA(t, 0.46, 4.63, 1.25)), ye(K*PHI(t, 0.46, 4.63, 1.25)) lt 1 linecolor rgb "blue" ti "B"
并且不改变脚本中的其他元素(即使它们在最小的工作示例中看起来毫无用处,但它们对于我想要做的实际的、非最小的情节是必需的)。
我该怎么做? 谢谢!
【问题讨论】: