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

メッシュ関数に渡される最初の2つの座標Logは、xとのy値です。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]