Liste der Anhänge anzeigen (Anzahl: 2)
Bei pdfplot 3D- Grafik fehlt ein Stück
Hallo,
ich möchte gerne die Funktion -1/r (in 3D Polarkoordinaten) darstellen.
In Anlehnung an dem Beispiel auf Seite 141 im PGFPLOT Manual habe ich dazu unten stehen Code geschrieben (Umwandlung x,y im Polarkoordinaten usw).
Die Grafik wird auch fast richtig dargestellt, aber es fehlt ein Stück (siehe jpg-Files)
Bei der Fehlersuche ist mir aufgefallen, dass dies auch bei anderen Funktionen, die im negativen z-Bereich liegen passiert (z.B. f(r)=-r). Bei positiven Funktionen tritt der Fehler nicht auf. Hat jemand eine Erklärung?
Vielen Dank!
Code:
\documentclass[10pt,ngerman,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[a4paper]{geometry}
\geometry{verbose,tmargin=2cm,bmargin=3cm,lmargin=2cm,rmargin=2cm,footskip=1cm}
\setlength{\parskip}{\smallskipamount}
\setlength{\parindent}{0pt}
\usepackage{units}
%--------------------------------------------------------------------------------------------------------------
\usepackage{pgfplots}
\pgfplotsset{compat=1.15} % komptibilitätseinstellung
\usepackage{lmodern} % Notwendig fuer gute Schriften (nicht verpixelt)
%------------------------------------------------------------------------------------
\begin{document}
\begin{tikzpicture}
\begin{axis}[
% clip=true,
width=20cm,
height=20cm,
xtick=\empty,
ytick=\empty,
ztick=\empty,
% xlabel={$x$}, ylabel={$y$}, zlabel={$E_{\mathrm{pot}}$},
axis lines=center,
axis on top,
% xmin=-1.8, xmax=2.3,
% ymin=-1.8, ymax=2,
samples=10,
samples y=40,
domain=0.2:1.7, % Ist in Polarkoordinaten eigentlich der Radius
y domain=0:360, % Ist in Polarkoordinaten eigentlich der Winkel
enlarge z limits={value=0.7,upper}, % Längere Z-Achse nach oben
% z label style={at={(ticklabel* cs:1.01)}, anchor=south, }, %Achsenbeschriftung aussen
% x label style={at={(ticklabel* cs:1.01)}, anchor=west, }, %Achsenbeschriftung aussen
% y label style={at={(ticklabel* cs:1.01)}, anchor=west, }, %Achsenbeschriftung aussen
colormap/blackwhite,
]
\addplot3 [surf] ({x*cos(y)},{x*sin(y)},{-1/x}); % Gibt Problem
%
%\addplot3 [surf] ({x*cos(y)},{x*sin(y)},{-x}); % Gibt auch Problem
% \addplot3 [surf] ({x*cos(y)},{x*sin(y)},{x}); % Gibt kein Problem
\end{axis}
\end{tikzpicture}
\end{document}
Anhang 6244Anhang 6245
Liste der Anhänge anzeigen (Anzahl: 1)
Das ist natürlich richtig. Ich habe nur negative z-Werte.
Aber es müßte doch möglich sein, die Länge (Start- und Endpunkt) der z-Achse unabhängig von den tatsächlichen Werten festzulegen.
Hintergrund:
Was mich eigentlich stört ist, dass die z-Achse teilweise über dem Trichter liegt. Sie müßte eigentlich "im Trichter verschwinden", siehe Screenhot.
Gruß
ManfredAnhang 6248
Liste der Anhänge anzeigen (Anzahl: 1)
Lösung gefunden
Ich habe eine "manuelle" Lösung gefunden.
Ich verberge die z-Achse mit
und füge die Achse "manuell" als node ein
Code:
\draw [->] (axis cs: 0,0,-2.1) -- (axis cs: 0,0,2) node [above ] {$E_{\mathrm{pot}}$};
Klappt prima, siehe jpg-Bild
Gruß
Manfred
Anhang 6247
Hier noch einmal der ganze Code:
Code:
\begin{tikzpicture}
\clip (2,2) rectangle (16,16);
\begin{axis}[
width=20cm,
height=20cm,
hide z axis,
xtick=\empty,
ytick=\empty,
ztick=\empty,
xlabel={$x$}, ylabel={$y$},
axis lines=center,
axis on top,
xmin=-1.8, xmax=2.3,
ymin=-1.8, ymax=2,
samples=40,
samples y=40,
domain=0.2:1.7,
y domain=0:360,
enlarge z limits={value=0.7,upper},
x label style={at={(ticklabel* cs:1.01)}, anchor=west, }, %Achsenbeschriftung aussen
y label style={at={(ticklabel* cs:1.01)}, anchor=west, }, %Achsenbeschriftung aussen
colormap/blackwhite,
z buffer=sort,
]
\addplot3 [surf] ({x*cos(y)},{x*sin(y)},{-1/x});
% Manuelle z-Achse, die im Trichter verschwindet
\draw [->] (axis cs: 0,0,-2.1) -- (axis cs: 0,0,2) node [above ] {$E_{\mathrm{pot}}$};
%
\end{axis}
\end{tikzpicture}
Liste der Anhänge anzeigen (Anzahl: 1)
Ich musste das anfordern, da sonst die Achsen alle hinter dem Potentialtopf verschwinden (siehe Anhang). Die so erscheinende Achsenlage ist nach meiner Meinung ziemlich sinnlos, da der Koordinationursprung (0,0,0) in jedem Fall oberhalb des Potentialtops zu sehen sein muss.
Viele Grüße
Manfred
Anhang 6249