Contrassegnare la superficie su Plot3D

Sep 04 2020

C'è un modo per contrassegnare una linea specifica sul grafico Plot3D in scala Log. La mia trama iniziale è: `

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]

`Se non è in scala Log, so che posso usare ParametricPlot3D e usare Show per sovrapporli insieme. Ma una volta tracciato in scala log, ParametricPlot non può essere visualizzato in scala log. Quello che vorrei avere è qualcosa del genere:

    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]

`Tuttavia, poiché MeshFunctions non dà un'idea significativa di cosa rappresenta la linea. C'è un modo per specificare semplicemente il valore X per tracciare una linea su quella superficie? Grazie!

Risposte

2 MichaelE2 Sep 04 2020 at 05:30

I primi due coordinate passati alle funzioni maglie sono Logdel xe yvalori. Ecco il codice per la mia interpretazione dell'intenzione del MeshFunctionscodice di esempio dell'OP (con un valore diverso per la linea mesh):

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]