y 轴上的刻度未按预期工作

y 轴上的刻度未按预期工作

我正在尝试绘制一个图,其中 y 轴上的刻度为 1、1.004、1.008、1.012、1.016 和 1.02。但是,图中仅显示刻度 1、1、1.01、1.01、1.02、1.02(见下文)。我假设如果我们写入 ytick={1, 1.004, 1.008, 1.012, 1.016, 1.02},那么这将设置图中每个 y 刻度处写入的值。有人可以向我解释为什么这是错误的,以及如何使 y 轴上的刻度为 1、1.004、1.008、1.012、1.016 和 1.02 吗?我的代码在这里:

\begin{figure}[ht]
    \centering
    \pgfplotsset{scaled y ticks=false}
    \begin{tikzpicture}
        \begin{axis}[name=plot, ymin=1, xtick={0, ..., 10}, ytick={1, 1.004, 1.008, 1.012, 1.016, 1.02}, xlabel={\LARGE$b_1$}]
            \addplot[black, mark=*]
            table{./data/ratio_of_estimated_value_versus_optimal_value.txt};\label{ratio_estimated_value_versus_optimal_value}
        \end{axis}
    \end{tikzpicture}
    
    \caption{Ratio of the Estimated Value of the Game and the Optimal Value of the Game}
    \label{fig:my_label}
\end{figure}

在此处输入图片描述

答案1

为了正确显示十进制数,您应该设置precision=4显示最多四位有效数字。

\documentclass{article}

\usepackage{tikz}
\usepackage{pgfplots}

\pgfplotsset{compat=1.18}

\begin{document}
\begin{figure}[ht]
    \centering
    \pgfplotsset{y tick label style={/pgf/number format/.cd, scaled y ticks=false, fixed, precision=4}} %<------------ Here
    \begin{tikzpicture}
        \begin{axis}[name=plot, xtick={0, ..., 10}, ytick={1, 1.004, 1.008, 1.012, 1.016, 1.02}, xlabel={\LARGE$b_1$}]
            \addplot[black, mark=*]
            table{./table.txt};\label{ratio_estimated_value_versus_optimal_value}
        \end{axis}
    \end{tikzpicture}
    
    \caption{Ratio of the Estimated Value of the Game and the Optimal Value of the Game}
    \label{fig:my_label}
\end{figure}
\end{document}

缺少精度

相关内容