在
\documentclass[beamer,crop]{standalone}
\usepackage{times}
\usepackage{physics}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\pgfplotsset{
compat=1.17, % Specify the compatibility version
nice_axis/.style={
samples=101,
domain=-2:2,
% title={Triangle Function},
xmax=1.2,
xmin=-1.2,
ymax=1.2,
ymin=-1.2,
ytick={0},
xtick={0},
% grid=both,
axis lines=middle,
axis line style={->},
xlabel={$\Im{s\left( t \right)}$},
ylabel={$\Re{s\left( t \right)}$},
x label style={at={(axis description cs:1,0.5)},anchor=west},
y label style={at={(axis description cs:0.5,1)},rotate=0,anchor=south},
legend pos=outer north east
}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
nice_axis,
]
\addplot[black, thick, domain=0:360, samples=100, smooth] ({cos(x)}, {sin(x)});
\addplot[red, thick, mark=*, data cs=polar] coordinates {
(30,1)
} coordinate (angle30);
\addplot[blue, thick, mark=*, yshift=10pt] coordinates{
(angle30)
};
\end{axis}
\end{tikzpicture}
\end{document}
我angle30
像往常一样期待着\draw
,但我得到了
Package PGF Math Error: Sorry, an internal routine
of the floating point unit got an ill-formatted floating point number `-120.0'
. The unreadable part was near '-120.0'..
如何解决?
答案1
您无法这样做,因为您正在对画布上(angle30)
具有数据格式的点进行困惑(x,y)
,它们恰好具有相似的名称,并且碰巧在代码级别上看起来相似。但这些是不同的表示,具有不同的含义,在不同的范围和上下文中。请参见下面的橙色线。
让我们反汇编一下您的命令,这可能过于简单,但应该能向您展示这个想法。
\addplot[red, thick, mark=*, data cs=polar] coordinates {
(30,1)
} coordinate (angle30);
因此这个命令表示:
- 开始一条路径(
\
)然后结束它(;
) - 做一些
action
中间的事情(就像在电影里一样) - 第一个行动应该是隐藏在
addplot
- 完成后请记住最后一个位置:
coordinate
- 并称之为
angle30
- 现在完成路径
;
虽然\draw[orange] (angle30) -- +(1,1);
会说:
- 开始一条路径
\
- 做一些隐藏的动作
draw
angle30
从先前存储的画布位置开始- 在相对坐标中画一条线
- 完成这条路
;
\documentclass[beamer,crop]{standalone}
\usepackage{times}
\usepackage{physics}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\pgfplotsset{
compat=1.17, % Specify the compatibility version
nice_axis/.style={
samples=101,
domain=-2:2,
% title={Triangle Function},
xmax=1.2,
xmin=-1.2,
ymax=1.2,
ymin=-1.2,
ytick={0},
xtick={0},
% grid=both,
axis lines=middle,
axis line style={->},
xlabel={$\Im{s\left( t \right)}$},
ylabel={$\Re{s\left( t \right)}$},
x label style={at={(axis description cs:1,0.5)},anchor=west},
y label style={at={(axis description cs:0.5,1)},rotate=0,anchor=south},
legend pos=outer north east
}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
nice_axis,
]
\addplot[black, thick, domain=0:360, samples=100, smooth] ({cos(x)}, {sin(x)});
\addplot[red, thick, mark=*, data cs=polar] coordinates {
(30,1)
} coordinate (angle30);
% \addplot[blue, thick, mark=*, yshift=10pt] coordinates{
% (angle30)
% };
\draw[orange] (angle30) -- +(1,1);
\end{axis}
\end{tikzpicture}
\end{document}