Drucken Sie 3 Dezimalstellen in TikZ, ohne das Standardformular zu verwenden

Drucken Sie 3 Dezimalstellen in TikZ, ohne das Standardformular zu verwenden

Ich versuche, eine Linealanzeige von 0 bis 1 mit 3 Dezimalzahlen zu erstellen. Das Lineal soll also ungefähr so ​​aussehen:

0,000 0,001 0,002 0,003 ..... 0,010 0,011

Und so weiter.

Da dies zu lang wäre, um auf eine Seite zu passen, plane ich, es auf mehrere Seiten aufzuteilen und verwende diesen Code für die erste Seite

\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]

\draw[ultra thick,color=black] (0,0) -- (26,0);
\foreach \x[evaluate=\x as \text using \x*0.001] in {0,1,2,3,...,40}{
    \draw[shift={(\x*0.65,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[yshift = -20pt,rotate = 270] { 
         \pgfmathparse{\x*0.001}\pgfmathprintnumberto[precision=1] {\pgfmathresult}{\pgfmathresult} \pgfmathresult };
}
\end{tikzpicture}

Nach dem Ausführen dieses Codes erhalte ich die folgende Ausgabe

Bildbeschreibung hier eingeben

Ist es möglich, die Zahl nicht in der Standardform, sondern wie im schriftlichen Beispiel gezeigt zu erhalten?

Ist es möglich, die Schleife einfacher zu gestalten, auf die Auswertung zu verzichten und einfach etwas wie Folgendes zu tun:

\draw[shift={(\x*0.65,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[yshift = -20pt,rotate = 270] { \x*0.001 };
}

Danke

Antwort1

Ich verstehe nicht ganz, warum Sie dieses \pgfmathparseZeug haben, wenn Sie bereits verwenden evaluate. Verwenden Sie es einfach \pgfmathprintnumber[fixed,precision=3]{\text}im nodeText. fixeddeaktiviert die wissenschaftliche Notation. Verwenden Sie es, um anstelle von \pgfmathprintnumber[fixed,fixed zerofill,precision=3]{\text}zu erhalten .0.0000.0

Sie können \x*0.001im Knotentext nicht direkt verwenden, da dieser nicht als Zahl analysiert wird, sondern nur Text ist. Sie könnten sagen node[...]{\pgfmathparse{\x*0.001}\pgfmathprintnumber[fixed,precision=3]{\pgfmathresult}};, aber dann würde ich sagen, evaluateist sauberer.

Bildbeschreibung hier eingeben

\documentclass[border=4mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[line cap=round]
\draw[ultra thick,color=black] (0,0) -- (26,0);
\foreach \x[evaluate=\x as \text using \x*0.001] in {0,...,40}{
    \draw (\x*0.65,2pt) -- ++(0,-4pt)
       node[below=3pt,anchor=west,align=left,rotate = 270] 
          {\pgfmathprintnumber[fixed,fixed zerofill,precision=3]{\text}};
}
\end{tikzpicture}
\end{document}

verwandte Informationen