我正在尝试使用 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={},
},
认真的说,Ti钾Z 和 PGF,,,pgfplots
:pgfplotstable
这些tcolorbox
确实都有非常大的手册,但是:
这些包都有大量功能,极其灵活;
他们的手册充满了带有附带输出的示例,这显然占用了一些空间。
编写手册并在代码更新时保持更新非常耗时,这不一定是程序员的首选任务……但对用户来说却非常有用。我上面引用的手册无疑是维护者数千小时工作的成果,我非常感谢感谢他们这样做。
关于datavisualization
与pgfplotstable
,我没有关注最新消息,但从我上次阅读有关该主题的内容来看,我的理解是 还pgfplots
没有被 取代datavisualization
。如果情况不再如此,请纠正我。