Não consigo superar esse pequeno problema desagradável. Usando \ifnum
eu defino a posição dos rótulos em torno das coordenadas no meu pgfplot. Isso funciona bemmas:
Só consigo testar se a variável \coordindex
é maior ou menor que um determinado valor. Quero poder testar se o índice é igual a um número. Tex me dá esse erro, caso eu use \ifnum\coordindex=0
no começo.
Ausente = inserido para \ifnum. \end{eixo}
\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}
Também tentei com o ifthen
pacote, mas não tive sorte. Por favor, alguém tem uma solução rápida para isso? O que estou fazendo de errado? De acordo com o documento isso não deveria acontecer.
Talvez um de vocês também tenha uma dica sobre como imprimir o ylabel da mesma forma que o xlabel está definido; logo na parte superior e/ou ao lado do rótulo y.
Responder1
Isto é semelhante aPor que \ifnum não funciona dentro das definições de estilo TikZ?, mas a situação é diferente.
Ao processar label={...}
, o PGF procura =
; uma solução alternativa está ocultando-o:
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}$
}
},
onde \equals
é definido no preâmbulo por
\newcommand{\equals}{=}
Outra possibilidade:
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}$
}
},
o que exige
\usepackage{expl3}
\ExplSyntaxOn
\cs_set_eq:NN \numbercompare \int_compare:nTF
\ExplSyntaxOff