我正在尝试绘制一个图,其中 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}