Quero exibir uma superfície, com 3 pontos nela. Tentei combinar duas postagens, com sucesso parcial. Se eu mudar o ponto de vista, recebo a figura superior. Nesse caso o log scaling vai embora, mas fica próximo do que eu queria (exceto as bolinhas nos pontos da malha). Se eu não mudar o ponto de vista, recebo a figura inferior, onde a escala logarítmica é perfeita, mas a seção de superfície interessante e os pontos não são visíveis. Como posso alterar o ponto de vista, mantendo o dimensionamento do log?
Aliás: qual é a melhor maneira de enfatizar como as posições 3D desses pontos se relacionam entre si? Talvez algumas linhas de malha extras em uma superfície? Ou algumas linhas projetadas nas coordenadas correspondentes?
\documentclass[border= 5mm]{standalone}
\usepackage{pgfplots}
%https://tex.stackexchange.com/questions/232070/3d-surface-plot-with-logarithmic-x-and-y-axis
%http://pgfplots.net/tikz/examples/mesh-plot/
\begin{document}
\begin{tikzpicture}
\begin{axis}
[view={105}{18}] %% Comment this out
[
scale = 1,
ymin = 1e5, xmax = 1.1e7,
ymin = 1e-8, ymax = 1e-5,
zmin = 0, zmax = 1,
ztick={.2,.5,.8,1.0},
ytick={1e-7,1e-6,1e-5},
colormap/jet,
xmode=log, ymode=log
]
\addplot3+[
mesh,%scatter,%,samples=10
% surf,
samples=10,
domain=5:7.1,
domain y=-8:-5,
]
(10^x, 10^y, { 1/(10^x*10^y+(1-10^y))});
\addlegendentry{Surface}
\addplot3+[only marks] coordinates {
(2397824, 1.665e-7, 0.715) };
\addlegendentry{A}
\addplot3+[only marks] coordinates {
(1572480, 2.09e-7, 0.753) };
\addlegendentry{B}
\addplot3+[only marks] coordinates {
(10649600,33e-9,.742) };
\addlegendentry{C}
\end{axis}
\end{tikzpicture}
\end{document}
Responder1
Ficarei feliz em remover isso. Você fechou as ]
opções do eixo, e é por isso que todo o material logarítmico foi ignorado. Basta substituir ][
por uma vírgula para chegar
\documentclass[border= 5mm]{standalone}
\usepackage{pgfplots}
%https://tex.stackexchange.com/questions/232070/3d-surface-plot-with-logarithmic-x-and-y-axis
%http://pgfplots.net/tikz/examples/mesh-plot/
\begin{document}
\begin{tikzpicture}
\begin{axis}
[view={105}{18}, %% Comment this out
scale = 1,
ymin = 1e5, xmax = 1.1e7,
ymin = 1e-8, ymax = 1e-5,
zmin = 0, zmax = 1,
ztick={.2,.5,.8,1.0},
ytick={1e-7,1e-6,1e-5},
colormap/jet,
xmode=log, ymode=log
]
\addplot3+[
mesh,%scatter,%,samples=10
% surf,
samples=10,
domain=5:7.1,
domain y=-8:-5,
]
(10^x, 10^y, { 1/(10^x*10^y+(1-10^y))});
\addlegendentry{Surface}
\addplot3+[only marks] coordinates {
(2397824, 1.665e-7, 0.715) };
\addlegendentry{A}
\addplot3+[only marks] coordinates {
(1572480, 2.09e-7, 0.753) };
\addlegendentry{B}
\addplot3+[only marks] coordinates {
(10649600,33e-9,.742) };
\addlegendentry{C}
\end{axis}
\end{tikzpicture}
\end{document}
Quanto à questão de qual é a melhor forma de indicar a localização, não sei, mas sinto que adicionar linhas finas que conectam as linhas com o fundo e desenhar a superfície por último pode ajudar.
\documentclass[border= 5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
%https://tex.stackexchange.com/questions/232070/3d-surface-plot-with-logarithmic-x-and-y-axis
%http://pgfplots.net/tikz/examples/mesh-plot/
\begin{document}
\begin{tikzpicture}
\begin{axis}
[view={105}{18}, %% Comment this out
scale = 1,
ymin = 1e5, xmax = 1.1e7,
ymin = 1e-8, ymax = 1e-5,
zmin = 0, zmax = 1,
ztick={.2,.5,.8,1.0},
ytick={1e-7,1e-6,1e-5},
colormap/jet,
xmode=log, ymode=log
]
\addplot3+[only marks] coordinates {
(2397824, 1.665e-7, 0.715) };
\draw[thin,gray] (2397824, 1.665e-7, 0.715) -- (2397824, 1.665e-7, 0);
\addlegendentry{A}
\addplot3+[only marks] coordinates {
(1572480, 2.09e-7, 0.753) };
\draw[thin,gray] (1572480, 2.09e-7, 0.753) -- (1572480, 2.09e-7, 0) ;
\addlegendentry{B}
\addplot3+[only marks] coordinates {
(10649600,33e-9,.742) };
\draw[thin,gray] (10649600,33e-9,.742) -- (10649600,33e-9,0);
\addlegendentry{C}
\addplot3+[
mesh,%scatter,%,samples=10
% surf,
samples=10,
domain=5:7.1,
domain y=-8:-5,
]
(10^x, 10^y, { 1/(10^x*10^y+(1-10^y))});
\addlegendentry{Surface}
\end{axis}
\end{tikzpicture}
\end{document}