如何格式化 PGF 图表轴刻度数?

如何格式化 PGF 图表轴刻度数?

我正在尝试使用 PGF 绘制图表,并控制 PGF 用来标记轴上刻度的数字格式。我观察到,默认情况下,如果数字为 10000 或更多,PGF 会切换到科学计数法。在某些情况下,这可能确实适用,但对于我的一些图表,4 位或 5 位数字就足够了,我更喜欢这些。如何在特定tikzpicture环境中抑制 PGF 的科学计数法?

我以为放入xticklabel style={/pgf/number format/fixed}环境axis就可以解决问题,但事实并非如此。我查看了 TikZ、PGF 和 PGFplots 的用户手册,但找不到任何我确信说明正确操作的语句。我不得不说,我发现文档很难使用:即使我找到一个似乎与我想要控制的东西相关的关键字,我也不清楚应该赋予它什么值,也不清楚关键字应该在更广泛的语法中的位置,所以很可能文档中包含了答案,但我没有发现它。

确实,这是一个 XY 问题吗?PGFplots 现在已被弃用,我们现在都应该使用\datavisualization它吗?

\documentclass[12pt,a4paper]{article}
\usepackage{tikz}
\usepackage{pgfplots} % for {axis}

\setlength{\hoffset}{-20mm}
\setlength{\textwidth}{180mm}
\setlength{\voffset}{-30mm}
\setlength{\textheight}{262mm}

\pgfplotsset{every tick/.append style={thick,color=black}}
\pgfplotsset{grid=major}
\pgfplotsset{grid style={thick}}
\tikzset{every mark/.append style={scale=.5}}

\begin{document}

\begin{figure}
 \centering
 \begin{tikzpicture}
  \begin{axis}[width=19cm, height=72mm,
    axis x line=middle, axis y line=middle,
    xticklabel style={/pgf/number format/fixed},
    xmin=-5,xmax=10000,xtick={0,1000,...,10000},
    ymin=-40,ymax=32, ytick={-40,-35,...,30}
   ]
  \end{axis}
 \end{tikzpicture}
\end{figure}

\end{document}

答案1

你需要阅读pgfplots手动的更加小心。:-)

scaled ticks=false您的问题已通过传递给环境得到解决axis(参见§4.15.3,刻度缩放 – 刻度中的常见因素pgfplots手册中):

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18} % or some lower version if you don't have any ≥ 1.18

\pgfplotsset{
  every tick/.append style={thick, color=black},
  grid=major,
  grid style=thick,
}

\tikzset{every mark/.append style={scale=.5}}

\begin{document}
 \begin{tikzpicture}
  \begin{axis}[
    width=19cm, height=72mm,
    axis x line=middle, axis y line=middle,
    xticklabel style={/pgf/number format/fixed},
    xmin=-5,xmax=10000,xtick={0,1000,...,10000},
    ymin=-40,ymax=32, ytick={-40,-35,...,30},
    scaled ticks=false,
   ]
  \end{axis}
 \end{tikzpicture}
\end{document}

在此处输入图片描述

如果您不想要千位分隔符,请set thousands separator={}按如下方式使用:

xticklabel style={
  /pgf/number format/.cd, fixed, set thousands separator={},
},

在此处输入图片描述

认真的说,TiZ 和 PGF,,,pgfplotspgfplotstable这些tcolorbox确实都有非常大的手册,但是:

  • 这些包都有大量功能,极其灵活;

  • 他们的手册充满了带有附带输出的示例,这显然占用了一些空间。

编写手册并在代码更新时保持更新非常耗时,这不一定是程序员的首选任务……但对用户来说却非常有用。我上面引用的手册无疑是维护者数千小时工作的成果,我非常感谢感谢他们这样做。

关于datavisualizationpgfplotstable,我没有关注最新消息,但从我上次阅读有关该主题的内容来看,我的理解是 还pgfplots没有被 取代datavisualization。如果情况不再如此,请纠正我。

相关内容