Pgfplots extremos: mejora la resolución del gráfico polar en 3D y evita que se exceda la capacidad de TeX.

Pgfplots extremos: mejora la resolución del gráfico polar en 3D y evita que se exceda la capacidad de TeX.

Entonces tengo este gráfico polar en 3D que describe el patrón de radiación de una antena, generado con los datos exportados del programa de simulación. El pico en el medio es la característica principal del patrón de radiación, pero debería ser másredondeado.

Esto se debe al hecho de que la resolución angular máxima es de 3 grados (los ejes xey están en grados). Una resolución menor (2 o 1 grado) provoca el TeX capacity exceedederror.

Sin embargo, estaré encantado de mejorar la resolución sólo en las proximidades del pico (-15 < phi, theta < 15), pero tengo problemas con los archivos de datos.

ingrese la descripción de la imagen aquí

El MWE es el siguiente:

\documentclass{standalone}

\usepackage{pgfplots,siunitx}
\usepgfplotslibrary{dateplot,polar,units,external}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
        colorbar,
        data cs=polar,
        ymin=-50, ymax=50,
        xmin=-50, xmax=50,
        zmin=0, zmax=31,
        xlabel={$\phi$},
        x unit=\si{\degree},
        ylabel={$\theta$},
        y unit=\si{\degree},
        zlabel={Directivity},
        z unit=\si{\dB},        
        point meta min=0, point meta max=31,
        unit vector ratio*=1 1 2,
        z buffer=sort,
        view={45}{30},
        width=20cm
        ]
\addplot3[surf, fill=white, mesh/ordering=y varies, mesh/rows=61] %
table[x index={1},y index={0},z index={2}]{8x8-ful-arr-good-3.txt};
\end{axis}
\end{tikzpicture}
\end{document}

y los archivos de datos son:

Estoy buscando una manera de mejorar la trama en la región deseada usando pgfplots. ¿Hay alguna manera de combinar los dos archivos?

Respuesta1

Puede filtrar puntos que no necesita mediante x filtery/o y filter. Para mantener intacta la estructura de malla, hay que respetar dos puntos:

  1. asegúrese de asignarunbounded coords=jump
  2. asegúrese de que los puntos que deben descartarse reciban "nan" (ynoun valor vacío).

La violación de cualquiera de estos elementos destruiría la estructura de la malla.

Esto es lo que obtengo:

\documentclass[border=5mm]{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
        data cs=polar,
       % ymin=-180, ymax=180,
       % xmin=-180, xmax=180,
       % zmin=-20, zmax=11,
       % unit vector ratio*=1 1 10,
        z buffer=sort,
        view={45}{30},
        width=15cm,
        x filter/.code={%
            % PHI:
            \ifdim-15pt>#1pt
                \def\pgfmathresult{nan}%
            \fi
        },
        y filter/.code={%
            % THETA
            \ifdim#1pt>15pt
                \def\pgfmathresult{nan}%
            \fi
        },
        unbounded coords=jump,
        ]
\addplot3[surf, fill=white, mesh/ordering=y varies, mesh/rows=37] table[x index={1},y index={0},z index={2}]{polar.dat};
\end{axis}
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Algunas notas:

  1. Utilicé tu archivo de datos dePgfplots cierra caminos en la trama polar.
  2. Parece x filterno tener ningún efecto... es posible que desees ajustar esas cosas en función de tu archivo de datos.
  3. Los filtros de mi ejemplo funcionan mediante primitivas TeX, es decir, mediante \ifdim<dimension1> <operation> <dimension2>. Como los números en este contexto no tienen dimensión, tengo que añadir "pt" artificialmente. Este enfoque tiene una precisión restringida y un rango de números <16384, pero funciona para esta imagen.
  4. \if<condition> \else \fies la primitiva TeX para condicionales y \def\pgfmathresult{nan}sobrescribe el resultado con "nan".
  5. Hay un agujero en algún segmento y sospecho que su condición "(-15 < phi, theta < 15)" podría necesitar alguna modificación, ya sea porque usé el archivo de datos incorrecto o porque realmente necesita argumentos diferentes.

Referencias: consulte el manual de pgfplots, especialmente la documentación para unbounded coords.

información relacionada