PGFPlot对数刻度下刻度值自动舍入问题求解
解决PGFPlots对数刻度大数值自动舍入问题
问题出在log ticks with fixed point选项上——它会强制对数刻度的标签采用固定点数格式,但会自动调整有效数字,导致带小数的大数值被舍入。按以下步骤修改代码即可解决:
- 移除
log ticks with fixed point选项 - 给Y轴也明确设置刻度标签格式,与X轴保持一致
- 保留
scaled ticks=false(你代码中已添加,无需修改)
修改后的完整代码:
\begin{tikzpicture} \pgfplotsset{% x tick label style={/pgf/number format/fixed, /pgf/number format/precision=1, /pgf/number format/1000 sep=\,}, y tick label style={/pgf/number format/fixed, /pgf/number format/precision=1, /pgf/number format/1000 sep=\,}, } \begin{loglogaxis}[ title={--}, xlabel={--}, ylabel={Median of Execution Time [ms]}, xmin=0, xmax=4096, ymin=0, ymax=32375.5, xtick={1,2,4,8,16,32,64,128,256,512,1024,2048,4096}, ytick={4,8,14,52,278,525,4524.5,14129.5,32375.5}, legend pos=north west, scaled ticks = false, ymajorgrids=true, grid style=dashed, ] \addplot[ color=blue, mark=square, ] coordinates { (1,3)(2,4)(4,4)(8,4)(16,4)(32,8)(64,14)(128,52)(256,278)(512,525)(1024,4524.5)(2048,14129.5)(4096,32375.5) }; \legend{Execution Time} \end{loglogaxis} \end{tikzpicture}
关键修改说明:
- 将X、Y轴的刻度标签样式统一配置,确保两者都启用
fixed格式与precision=1,同时保留千位分隔符 - 删除
log ticks with fixed point,该选项会覆盖你设置的固定精度,自动对大数值做舍入处理 - 保留
scaled ticks=false,避免数值被自动转换为科学计数法格式
修改后,Y轴上的4524.5、14129.5等带小数的大数值会精确显示,不再被舍入。
内容的提问来源于stack exchange,提问作者Tom Hüller
相关产品推荐
相关产品推荐

