所以我制作了这个图表,但是这个图表无法向我显示$\frac{5}{2}\pi$
刻度7.85
。
我尝试过扩大x
最大范围,增加额外的刻度(和额外的刻度标签),但都不起作用。有人能帮我吗?谢谢!
\documentclass[10pt,openany,a4paper]{article}
\usepackage[margin=1.5cm]{geometry}
\usepackage{a4wide}
\usepackage{amsfonts,amsmath,amssymb}
\usepackage{array}
\usepackage{tikz}
\usepackage{pgf}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usepackage{mathrsfs}
\usetikzlibrary{arrows}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings}
\usepackage{tkz-euclide}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage[english]{babel}
\begin{document}
\begin{tikzpicture}
\begin{axis} [
axis line style = thick,
axis x line = middle,
axis y line = middle,
xtick = {-3.14, -1.57, 0., ..., 7.85, 9.42},
ytick = {-1, 0, 1},
xlabel = {$\theta$},
ylabel = {$y$},
xticklabels = {$-\pi$, $-\frac{\pi}{2}$, , $\frac{\pi}{2}$, $\pi$, $\frac{3\pi}{2}$, $2\pi$, $\frac{5\pi}{2}$, $3\pi$},
xmin = -3.5, xmax = 10,
ymin = -1.5, ymax = 1.5,
font = \tiny,
]
\addplot[black, thin, samples = 1000, smooth, domain=-3.14:0] {cos(deg(x))};
\addplot[cyan, thin, samples = 1000, smooth, domain=0:3.140000] {cos(deg(x))};
\addplot[black, thin, samples = 1000, smooth, domain=3.14:8.5] {cos(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
幸运的是,如果您删除一些中间值并使用,您就可以获得所需的刻度列表xtick = {-3.14, -1.57, ..., 9.42}
。
为什么这样做有效?上面的列表将扩展为
-3.14
-1.57
-0.00002
1.56998
3.13997
4.70996
6.27995
7.84995
9.41994
可以看出,pgf 的浮点精度不是很好。纯属运气,最后的 tikz 计算为9.41994
,低于设置为 的上限9.42
。
您的问题中的列表xtick = {-3.14, -1.57, 0., ..., 7.851, 9.42}
,计算结果为
-3.14
-1.57
0.
1.57
3.14001
4.71002
6.28003
9.42
请注意 周围没有值7.85
。缺少此勾号是因为 pgf 会计算列表中的下一步为7.85004
,这高于 的上限7.85
。
您可以通过留出一些舍入误差的余地来避免这个问题xtick = {-3.14, -1.57, 0., ..., 7.851, 9.42}
。