Estou tentando plotar algo usando atan no pgfplots, mas sempre resulta em centenas de erros.
Estou usando um exemplo que encontrei aqui:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\pgfplotsset{compat=1.9}
\begin{tikzpicture}
\begin{axis}[
width=160pt,compat=1.5.1,grid style={ultra thin},every axis plot post/.append style={thick},
x tick label style={font=\tiny},y tick label style={font=\tiny},
scale only axis,grid=major,axis lines=middle,
xlabel={$x$},
ylabel={$y$},
xmin=-200,
xmax=200,
domain=-200:210,
ymin=-5.5,
ymax=5.5,
xtick={-150,-100,...,150},
ytick={-5, -4,...,5},
restrict y to domain=-20:20,
legend style={at={(0.5,-0.05)},anchor=north,nodes={right}},
]
\addplot[mark=none,color=blue, samples=500]{rad(atan(x))};
\addlegendentry{$y = \tan^{-1}x $};
\end{axis}
\end{tikzpicture}
\end{document}
Os erros são:
! Undefined control sequence.
<recently read> \pgfmath@multiply@thousand
l.23 ...ne,color=blue, samples=500]{rad(atan(x))};
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
! Undefined control sequence.
\pgfmath@basic@atan@ ... pt \pgfmath@table@lookup
{\pgfmath@x }{pgfmath@atan...
l.23 ...ne,color=blue, samples=500]{rad(atan(x))};
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
! Missing number, treated as zero.
<to be read again>
}
l.23 ...ne,color=blue, samples=500]{rad(atan(x))};
E isso continua indefinidamente. Mais de cem erros e então ele para de compilar sem nenhum resultado. O que estou fazendo de errado aqui?
Responder1
De acordo com seu arquivo de log, você tem pgfplots
1.11 e pgf
2.10 . Posso reproduzir o problema nesta combinação.
Funciona com ambos os pacotes atualizados (ou seja, pgfplots
1.11 e pgf
3.00).
Funciona com pgfplots
1.10 e pgf
2.10.
As alternativas de soluções para você são:
atualize o PGF para 3.00 ou
fazer downgrade do pgfplots para 1.10 ou
usar
\addplot ... gnuplot {atan(x)};
por enquanto.
EDITARAcontece que este problema é na verdade pior do que o previsto: os relatórios emSequência de controle indefinida: \pgfmath@multiply@thousandeMiktex 2.9 pgfplots, problema de colisão da biblioteca circuitikzparecem ter a mesma causa raiz.
A causa raiz é a pgfplots
tentativa de corrigir a versão antiga do PGF; mas esse patch não é aplicado (ou seja, é um bug no pgfplots
).
Para contornar isso, você pode proceder de acordo com a opção (1) ou (2). Ou você pode adicionar as linhas
% HACK: deactivate feature 'trig format' but restore compatibility
% between pgfplots 1.11 and tikz 2.10:
\csname pgfutil@ifundefined\endcsname{pgfmathiftrigonometricusesdeg}{%
\def\pgfmathiftrigonometricusesdeg#1#2{#1}%
}{}%
antescarregando pgfplots
. Neste caso, assumirá que tudo está atualizado e não tentará aplicar o patch quebrado. Risco de aplicar este patch: o recurso trig format plots
introduzido no pgfplots
1.11 não funcionará. Mas eventualmente (provavelmente com a versão que virá depois do PGF 3.0.0).