Ich möchte eine Oberfläche anzeigen, auf der 3 Punkte liegen. Ich habe versucht, zwei Beiträge zu kombinieren, mit teilweisem Erfolg. Wenn ich den Blickwinkel ändere, erhalte ich die obere Abbildung. In diesem Fall verschwindet die logarithmische Skalierung, aber sie ist nahe an dem, was ich wollte (außer den Kugeln in den Netzpunkten). Wenn ich den Blickwinkel nicht ändere, erhalte ich die untere Abbildung, bei der die logarithmische Skalierung perfekt ist, aber der interessante Oberflächenabschnitt und die Punkte sind nicht sichtbar. Wie kann ich den Blickwinkel ändern und dabei die logarithmische Skalierung beibehalten?
Übrigens: Wie kann man am besten hervorheben, wie die 3D-Positionen dieser Punkte zueinander in Beziehung stehen? Vielleicht einige zusätzliche Netzlinien auf einer Oberfläche? Oder einige projizierte Linien zu den entsprechenden Koordinaten?
\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}
Antwort1
Ich werde das gerne entfernen. Du hast die ]
Achsenoptionen geschlossen, weshalb der ganze logarithmische Kram ignoriert wurde. Ersetze es einfach ][
durch ein Komma, um zu kommen:
\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}
Was die Frage angeht, wie man den Standort am besten angibt, weiß ich es nicht, aber ich denke, es könnte hilfreich sein, dünne Linien hinzuzufügen, die die Linien mit dem Boden verbinden, und die Oberfläche zuletzt zu zeichnen.
\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}