使用 pgfmath 处理数字

使用 pgfmath 处理数字

我有下面的 MWE。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{arrows}


\begin{document}


\begin{tikzpicture}[{x=(1mm,0)},{y=(0,1mm)}]
\small

\def\verticallength{50}
\def\horizontallength{80}
\def\ticksemilength{2}

\draw
    (0, 0)
        rectangle(\horizontallength, \verticallength)
    ;

\foreach \stp in {0,1,...,10}{
    \pgfmathparse{\stp/10}
    \pgfmathprintnumberto{\pgfmathresult}{\coeff}
    \pgfmathparse{1900+\stp*10}
    \pgfmathprintnumberto{\pgfmathresult}{\years}

    \draw
        (\ticksemilength, \stp*\verticallength/10)--++
            (-2*\ticksemilength, 0)
            node[left]{\coeff}
        (\stp*\horizontallength/10, \ticksemilength)--++
        (0, -2*\ticksemilength)
            node[below]{\years}
        ;
    }

\end{tikzpicture}

\end{document}

这里的矩形代表相同宽度和大小的 PNG 图形。

我的问题是:如何显示第二个垂直值0.1而不是 $1 \cdot 10^{-1}$?如何从水平值中删除逗号?

谢谢。

答案1

为了获得更好的结果和更高效的工作,我建议您axis在解决方案中实施。

以下是代码

\documentclass[]{article}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
 scaled ticks = false,
 tick label style={/pgf/number format/fixed},
 xlabel={years},
 ylabel={coefficient},
 width=16cm,
 height=10cm,
 xtick={1900,1910,...,2000},
 ytick={0,0.1,0.2,...,1},
 xmin=1900,
 xmax=2000,
 ymin=-0.1,
 ymax=1]
\end{axis}

\end{tikzpicture}
\end{document}

产生更优雅的输出

在此处输入图片描述

相关内容