缺少已命名的勾号标签

缺少已命名的勾号标签

所以我制作了这个图表,但是这个图表无法向我显示$\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}

相关内容