我想绘制一个带有点的3D图形(我想我已经设法了),并且还拟合了一组这些点的数学函数。我的变量V1可以假设两个值2或4.因此,如果V1等于2,则函数正在绘图,否则如果V1等于4,则其他函数正在绘图。当我尝试这样做时,会显示以下消息:
Erro de GPL:代数(iter(5000,1000000,10)DOIF(V1 = 2)。) 期待(或+或*或/:iter(5000,1000000,10)DOIF(V1 = 2)
我的代码:
> GGRAPH /GRAPHDATASET NAME="graphdataset" VARIABLES=V2 pacpop V1
> MISSING=LISTWISE REPORTMISSING=NO /GRAPHSPEC SOURCE=INLINE. BEGIN
> GPL SOURCE: s=userSource(id("graphdataset"))
>DATA:V2=col(source(s), name("V2"))
>DATA: pacpop=col(source(s),name("pacpop"))
>DATA: V1=col(source(s), name("V1"),unit.category())
>COORD: rect(dim(1,2,3))
>GUIDE: axis(dim(1),label("Sexo"))
> GUIDE: axis(dim(2), label("Rendimento Mensal"))
> GUIDE: axis(dim(3), label("pacpop"))
>SCALE: log(dim(2), base(10))
>SCALE: log(dim(3), base(10))
>SCALE: cat(dim(1), include("2", "4"))
> ELEMENT: point(position(V1*V2*pacpop))
>DATA: p = iter(0,5000,1)
> DATA: q = iter(5000,1000000,10)
>DATA: x = iter(0,5000,1)
>DATA: z =iter(5000,1000000,10)
>DO IF (V1=2).
>TRANS: y =eval(100*exp((-x/1654.97))
> TRANS: w = eval((10**8.865)/(z**2.186))
> ELEMENT: line(position(V1*x*y),color.interior(color."ff0000"))
> ELEMENT: line(position(V1*z*w), color.interior(color."ff0000"))
> ELSE.
> TRANS: r = eval(100*exp((-p/1415.97))
>TRANS: s = eval((10**7.065)/(q**2.216))
>ELEMENT:line(position(V1*p*r),color.interior(color."ff0000"))
ELEMENT:line(position(V1*q*s), color.interior(color."ff0000"))
>END IF.
> END GPL.
答案 0 :(得分:0)
这里没有必要使用3d。由于V1只能取两个值,因此您可以简单地将这些线叠加到同一个图上,并查看它们的偏差位置,如下图所示。注意我将p更改为1到5000之间的范围,您不能记录0。
GGRAPH /GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
COORD: rect(dim(1,2))
DATA: p = iter(1,5000,1)
DATA: q = iter(5000,1000000,10)
TRANS: y =eval(100*exp((-p/1654.97))
TRANS: w = eval((10**8.865)/(q**2.186))
TRANS: r = eval(100*exp((-p/1415.97))
TRANS: s = eval((10**7.065)/(q**2.216))
TRANS: V2 = eval("V1=2")
TRANS: V4 = eval("V1=4")
SCALE: log(dim(1), base(10))
SCALE: log(dim(2), base(10))
GUIDE: axis(dim(3), opposite())
ELEMENT: line(position(p*y), color.interior(color.red))
ELEMENT: line(position(q*w), color.interior(color.pink))
ELEMENT: line(position(p*r),color.interior(color.blue))
ELEMENT: line(position(q*s), color.interior(color.lightblue))
END GPL.
如果你真的想要,可以从那里开始制作3D,但我不推荐它。