首页>LaTeX>source

我拼凑了一个PGFplots文件.它在18次中有16次工作.两次输入文件无效,输入文件非常类似.

错误:

! Dimension too large.
<recently read> \[email protected]

我尝试这个解决方案,错误成了

! Package PGF Math Error: Sorry, an internal routine of the floating point unit
got an ill-formatted floating point number `0.0'. The unreadable part was near
'0.0'..

! Illegal unit of measure (pt inserted).
<to be read again>

我还尝试修改输入文件中的小数位和 precision=3,中的数字 .这是怎么回事? 输入中的数字对于TeX来说似乎太多了,但是其他文件是相似的并且没有问题。

.tex   文件

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
%\usetikzlibrary{fpu}
%\pgfkeys{/pgf/fpu=true, /pgf/fpu/output format=fixed}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    y tick label style={
        /pgf/number format/.cd,
        fixed,
        fixed zerofill,
        precision=3,
        /tikz/.cd
    },
]
\addplot table[domain=0:360] {pgf-test-631.dat};
\end{axis}
\end{tikzpicture}
\end{document}

数据文件

000.0000000000   -5217.8683723600
 015.0000000000   -5217.8697310100
 030.0000000000   -5217.8734062100
 045.0000000000   -5217.8780573800
 060.0000000000   -5217.8817718100
 075.0000000000   -5217.8830629100
 090.0000000000   -5217.8817385100
 105.0000000000   -5217.8788803300
 120.0000000000   -5217.8769672400
 135.0000000000   -5217.8778445600
 150.0000000000   -5217.8811590700
 165.0000000000   -5217.8849278400
 180.0000000000   -5217.8866359200
 195.0000000000   -5217.8849276900
 210.0000000000   -5217.8811588800
 225.0000000000   -5217.8778444900
 240.0000000000   -5217.8769672200
 255.0000000000   -5217.8788803500
 270.0000000000   -5217.8817385800
 285.0000000000   -5217.8830622800
 300.0000000000   -5217.8817716900
 315.0000000000   -5217.8780572800
 330.0000000000   -5217.8734060900
 345.0000000000   -5217.8697309200
 360.0000000000   -5217.8683723600
最新回答
  • 2019-12-5
    1 #

    问题是第二列数据中的数字变化很小,它们都是 -5217.8.... .这给了 pgfplots   计算 yticks的问题 . pgfplots   手册指出你几乎无能为力,但在你的情况下并非如此.一种方法是读取由 5217移位的数据   然后调整标签。

    \documentclass[tikz]{standalone}
    \usepackage{pgfplots}
    \pgfplotsset{compat=1.14}
    \begin{document}
    \begin{tikzpicture}
      \begin{axis}[yticklabel={\pgfmathparse{\tick-5217}%
        $\pgfmathprintnumber[precision=3,zerofill]{\pgfmathresult}$}]
        \addplot table[domain=0:360,y expr=\thisrowno{1}+5217]
        {pgf-test-631.dat};
    \end{axis}
    \end{tikzpicture}
    \end{document}
    

    通过指定y值应从每行的第二个元素中获取,然后添加 5217来完成数据移位 :

    y expr=\thisrowno{1}+5217
    
    addplot table中   论点。 \thisrowno的论点   到毕业号 2   是value 1   因为列默认为零索引。

    然后通过获取刻度值,减去 5217来完成标签print ,然后使用所需的数字格式print

    yticklabel={\pgfmathparse{\tick-5217}%
            $\pgfmathprintnumber[precision=3,zerofill]{\pgfmathresult}$}]
    

    请务必删除影响此标签设置的其他选项。

  • LaTeX sectioning:如何使用乳胶或xetex中的孟加拉数字获取部分编号和页码?
  • LaTeX fancyhdr:ToC的两个页面上的标题