No puedo superar este pequeño y desagradable problema. Usando \ifnum
configuro la posición de las etiquetas alrededor de las coordenadas en mi pgfplot. esto funciona bienpero:
Solo puedo probar si la variable \coordindex
es 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=0
al 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 ifthen
paquete 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 \equals
se 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