Establecer la etiqueta de coordenadas de PGFplots usando ifnum

Establecer la etiqueta de coordenadas de PGFplots usando ifnum

No puedo superar este pequeño y desagradable problema. Usando \ifnumconfiguro la posición de las etiquetas alrededor de las coordenadas en mi pgfplot. esto funciona bienpero:

Solo puedo probar si la variable \coordindexes mayor o menor que un valor determinado. Quiero poder probar si el índice es igual a un número. Tex me da este error, por si lo uso \ifnum\coordindex=0al principio.

Falta = insertado para \ifnum. \end{eje}

\documentclass{standalone}

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

\pgfplotsset{
    name nodes near coords/.style={
        every node near coord/.append style={
            anchor=center,                      % 
            name=#1\coordindex,                 % naming of npdes with running index
            alias=#1last,
        },
    },
    name nodes near coords/.default=coordnode
}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[%
        width=\textwidth,
        height=.3\textheight,
        scale mode = scale uniformly,
        scale only axis,
        xmin=-200,
        xmax= 250,
        ymin=- 50,
        ymax= 400,
        axis x line = middle,
        axis y line = left,
        grid = none,
        xtick = {-200, -100, ...,300},
        ytick = {-100, 0, ...,400},
        minor tick num = 1,
        ytick align = outside,
        extra x ticks={0},
        extra x tick style={grid=major},
        xlabel={x / mm},
        ylabel={y / mm},
    ]

        \addplot+[
            color=orange,
            ultra thick,
            shape=circle,
            nodes near coords={},
            every node near coord/.append style={
               label={
                   [black!80, label distance=-1ex]
                   \ifnum\coordindex<1
                       5
                   \else
%                      \ifnum\coordindex=3
%                          -135
%                      \else
                           180-\coordindex*45
%                      \fi
                   \fi
                   :$p_{\coordindex}$
                }
            },
            name nodes near coords=p
        ]
        table{%
            0           0     
            -79.9393    236.8749 
            143.0014    350.0007
            143.0014    300.0000
            200.0008    300.0000
        };  
    \end{axis}
\end{tikzpicture}
\end{document}

También probé con el ifthenpaquete pero no tuve suerte. ¿Alguien tiene una solución rápida para esto? ¿Qué estoy haciendo mal? Según el documento esto no debería ocurrir.

Quizás alguno de ustedes también tenga una pista sobre cómo imprimir ylabel de la misma manera que se configura xlabel; justo en la parte superior y/o al lado de la etiqueta y.

Respuesta1

Esto es similar a¿Por qué \ifnum no funciona dentro de las definiciones de estilo de TikZ?, pero la situación es diferente.

Al procesar label={...}, PGF busca =; una solución alternativa es ocultarlo:

        every node near coord/.append style={
           label={
               [black!80, label distance=-1ex]
               \ifnum\coordindex<1
                   5
               \else
                  \ifnum\coordindex\equals 3
                      -135
                  \else
                       180-\coordindex*45
                  \fi
               \fi
               :$p_{\coordindex}$
            }
        },

donde \equalsse define en el preámbulo por

\newcommand{\equals}{=}

Otra posibilidad:

        every node near coord/.append style={
           label={
               [black!80, label distance=-1ex]
               \numbercompare{\coordindex<1}
                 {5}
                 {\numbercompare{\coordindex=3}{-135}{180-\coordindex*45}}%
               :$p_{\coordindex}$
            }
        },

que requiere

\usepackage{expl3}

\ExplSyntaxOn
\cs_set_eq:NN \numbercompare \int_compare:nTF
\ExplSyntaxOff

información relacionada