Example of several plots in the same axis.
MGL code:
call 'prepare2v' call 'prepare3d' new v 10:fill v -0.5 1:copy d sqrt(a^2+b^2) subplot 2 2 0:title 'Surf + Cont':rotate 50 60:light on:box:surf a:cont a 'y' subplot 2 2 1 '':title 'Flow + Dens':light off:box:flow a b 'br':dens d subplot 2 2 2:title 'Mesh + Cont':rotate 50 60:box:mesh a:cont a '_' subplot 2 2 3:title 'Surf3 + ContF3':rotate 50 60:light on box:contf3 v c 'z' 0:contf3 v c 'x':contf3 v c cut 0 -1 -1 1 0 1.1 contf3 v c 'z' c.nz-1:surf3 c -0.5
C++ code:
void smgl_combined(mglGraph *gr) // flow threads and density plot { mglData a,b,d; mgls_prepare2v(&a,&b); d = a; for(int i=0;i<a.nx*a.ny;i++) d.a[i] = hypot(a.a[i],b.a[i]); mglData c; mgls_prepare3d(&c); mglData v(10); v.Fill(-0.5,1); gr->SubPlot(2,2,1,""); gr->Title("Flow + Dens"); gr->Flow(a,b,"br"); gr->Dens(d); gr->Box(); gr->SubPlot(2,2,0); gr->Title("Surf + Cont"); gr->Rotate(50,60); gr->Light(true); gr->Surf(a); gr->Cont(a,"y"); gr->Box(); gr->SubPlot(2,2,2); gr->Title("Mesh + Cont"); gr->Rotate(50,60); gr->Box(); gr->Mesh(a); gr->Cont(a,"_"); gr->SubPlot(2,2,3); gr->Title("Surf3 + ContF3");gr->Rotate(50,60); gr->Box(); gr->ContF3(v,c,"z",0); gr->ContF3(v,c,"x"); gr->ContF3(v,c); gr->SetCutBox(mglPoint(0,-1,-1), mglPoint(1,0,1.1)); gr->ContF3(v,c,"z",c.nz-1); gr->Surf3(-0.5,c); }