¿Cómo sacar el potencial de este particular sombrero mexicano?

¿Cómo sacar el potencial de este particular sombrero mexicano?

Sé que hay algunas otras preguntas sobre sombreros mexicanos aquí, pero ninguna de las respuestas me parece completa. Me gustaría dibujar la siguiente figura con TikZ con ejes y etiquetado similares. ¿Cómo se puede hacer eso?

Mi ejemplo mínimo es como

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\begin{document}
      \begin{tikzpicture}
        \begin{axis}[  axis lines=center, axis on top = false, 
    view={140}{15},axis equal,title={The Mexican hat potential},
          colormap={blackwhite}{gray(0cm)=(1); gray(1cm)=(0)},
            samples=30,
            domain=0:360,
            y domain=0:1.25,
            zmin=0,
        zmax=0.9,
        xlabel=$\phi_{Im}$,
        ylabel=$\phi_{Re}$,
        zlabel=$V$,
        yticklabels={,,},
        xticklabels={,,},
        zticklabels={,,}
        ]
        \addplot3 [surf, shader=flat, draw=black, fill=white, z buffer=sort] ({sin(x)*y}, {cos(x)*y}, {(y^2-1)^2});
        \end{axis}
    \end{tikzpicture}
\end{document}

El resultado (ver más abajo) no me gusta porque quiero un sistema de coordenadas diestro con el eje z apuntando hacia arriba y el eje x apuntando hacia afuera de la pantalla como en la figura adjunta. Si los guiones son demasiado difíciles de implementar, también puedo prescindir de ellos.

Para conseguir los ejes correctos, he ajustado el ángulo de visión para "hacerlo bien", pero esto tampoco es sencillo en este momento. Finalmente, el etiquetado es definitivamente incorrecto, como se puede ver en el resultado. Cualquier ayuda sería apreciada.

EDITAR: Parece haber algún tipo de error con el etiquetado. voy a probar lo que esrecomendado en este hilo.

Fracasado complot del sombrero mexicano, etiquetado fallido

ingrese la descripción de la imagen aquí

Respuesta1

¿Está bien si los dibujamos?

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots,amsmath}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            hide axis,
            %axis lines=middle,
%            axis on top,
%            axis line style={blue,dashed,thick},
%            ymin=-2,ymax=2,
%            xmin=-2,xmax=2,
%            zmin=-2,zmax=2,
            samples=30,
            domain=0:360,
            y domain=0:1.25,clip=false
        ]
        \addplot3 [surf, shader=flat, draw=black, fill=white, z buffer=sort]
           ({sin(x)*y}, {cos(x)*y}, {(y^2-1)^2});
        \draw[blue,thick,dashed] (axis cs:0,0,0) -- (axis cs:1,0,0)
                    node[below,font=\footnotesize]{$\phi_{\text{IM}}$};
        \draw[blue,thick,-stealth] (axis cs:1,0,0) -- (axis cs:1.3,0,0)
                    node[above,font=\footnotesize]{$\hat{y}$};
        \draw[blue,thick,dashed] (axis cs:0,0,0) -- (axis cs:0,-1,0)
                    node[left=2mm,font=\footnotesize]{$\phi_{\text{RE}}$};
        \draw[blue,thick,-stealth] (axis cs:0,-1,0) -- (axis cs:0,-1.5,0)
                    node[right=1mm,font=\footnotesize]{$\hat{x}$};
        \draw[blue,thick,dashed] (axis cs:0,0,0) -- (axis cs:0,0,1)
                    %node[left=2mm,font=\footnotesize]{$\phi_{\text{RE}}$}
                    ;
        \draw[blue,thick,-stealth] (axis cs:0,0,1) -- (axis cs:0,0,1.3)
                    node[right,font=\footnotesize]{$\hat{z}$};
        \end{axis}
    \end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Atención: Noté que el siguiente PDF de Mexican Hat Potential está algo corrupto. Sospecho de la bola sombreada. Está corrupto en el sentido de que cuando intentas imprimirlo: en algunos software no se puede imprimir (como acroread de UNIX) y en otros software sólo se imprime una cuarta parte (el tercer cuadrante) de la bola junto con el resto. del documento.

Sólo para futuros usuarios y como referencia, me gustaría publicar mi solución a este problema. Aunque no replica la figura del OP, es incluso mejor. Así que aquí está mi código, que es extremadamente manual en el sentido de que tuve que obtenerlo mediante prueba y error y copiando y pegando de muchas fuentes diferentes:

    \documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\usepackage{tikz}
\pgfdeclarefunctionalshading{sphere}{\pgfpoint{-25bp}{-25bp}}{\pgfpoint{25bp}{25bp}}{}{
%% calculate unit coordinates
25 div exch
25 div exch
%% copy stack
2 copy 
%% compute -z^2 of the current position 
dup mul exch
dup mul add
1.0 sub
%% and the -z^2 of the light source 
0.3 dup mul
-0.5 dup mul add
1.0 sub
%% now their sqrt product
mul abs sqrt
%% and the sum product of the rest
exch 0.3 mul add
exch -0.5 mul add
%% max(dotprod,0)
dup abs add 2.0 div 
%% matte-ify
0.6 mul 0.4 add
%% currently there is just one number in the stack.
%% we need three corresponding to the RGB values
dup
0.4
}
\begin{document}
      \begin{tikzpicture}
          \begin{axis}[  axis lines=center, axis on top = false, 
    view={140}{25},axis equal,title={The Mexican hat potential},
          colormap={blackwhite}{gray(0cm)=(1); gray(1cm)=(0)},
            samples=50,
            domain=0:360,
            y domain=0:1.25,
            zmin=0,
        xmax=1.5,
        ymax=1.5,
        zmax=1.5,
        x label style={at={(axis description cs:0.10,0.25)},anchor=north},
        y label style={at={(axis description cs:0.9,0.2)},anchor=north},
        z label style={at={(axis description cs:0.5,0.9)},anchor=north},
        xlabel = $\mathrm{Re}(\phi)$,
        ylabel=$\mathrm{Im}(\phi)$,
        zlabel=$V(\phi)$,
        yticklabels={,,},
        xticklabels={,,},
        zticklabels={,,}
        ]
        \addplot3 [surf, shader=flat, draw=black, fill=white, z buffer=sort] ({sin(x)*y}, {cos(x)*y}, {(y^2-1)^2});
        \end{axis}
        \shade[shading=sphere] (3.47,3.5) circle [radius=0.15cm];
        \shade[shading=sphere] (5.2,2.2) circle [radius=0.15cm]; 
        \node[anchor=east] at (4.05,3.71) (text) {A};
  \node[anchor=west] at (5.5,3.0) (description) {B};
  \draw (description) edge[out=180,in=0,<-] (text);
    \end{tikzpicture}
\end{document}

Y aquí está el resultado de eso: ingrese la descripción de la imagen aquí

información relacionada