Plot3D에서 표면 표시

Sep 04 2020

로그 스케일에서 Plot3D 그래프의 특정 선을 표시하는 방법이 있습니까? 내 초기 플롯은 다음과 같습니다.

Plot3D[(y/(0.5*y + 2*x)), {x, 1/10^10, 1/10^3}, {y, 0, 4.5/10^6}, 
 ScalingFunctions -> {"Log", "Log", None}, 
 ColorFunctionScaling -> True]

`가 로그 스케일에 없으면 ParametricPlot3D를 사용하고 Show를 사용하여 함께 오버레이 할 수 있습니다. 하지만 일단 로그 스케일로 플로팅하면 ParametricPlot이 로그 스케일로 표시되지 않습니다. 내가 갖고 싶은 것은 다음과 같습니다.

    Plot3D[(y/(0.5*y + 2*x)), {x, 1/10^10, 1/10^3}, {y, 0, 4.5/10^6}, 
 ScalingFunctions -> {"Log", "Log", None}, 
 ColorFunctionScaling -> True, 
 MeshFunctions -> Function @@@ {{{v, u}, v^3}}, Mesh -> 1, 
 PlotPoints -> 100, Ticks -> Automatic]

`그러나 MeshFunctions는 라인이 무엇을 의미하는지에 대한 의미있는 아이디어를 제공하지 않기 때문에. X 값을 지정하여 해당 표면에 선을 그리는 방법이 있습니까? 감사!

답변

2 MichaelE2 Sep 04 2020 at 05:30

메시 함수에 전달 된 처음 두 좌표 Log는의 xy값입니다. 다음은 OP의 예제 MeshFunctions코드 의 의도를 해석하는 코드입니다 (메시 라인에 대해 다른 값 사용).

Plot3D[(y/(y/2 + 2*x)), {x, 1/10^10, 1/10^3}, {y, 0, 4.5/10^6}, 
 ScalingFunctions -> {"Log", "Log", None}, 
 ColorFunctionScaling -> True, 
 MeshFunctions -> {Function[{logx, logy, z}, Exp[logy]^3]}, 
 Mesh -> {{(5*^-7)^3}}, PlotPoints -> 100, Ticks -> Automatic]