3개의 십진수를 사용하여 0부터 1까지 눈금자 표시를 하려고 합니다. 그래서 나는 눈금자가 다음과 같이 보이도록 하고 싶습니다.
0.000 0.001 0.002 0.003 ..... 0.010 0.011
등등.
한 페이지에 다 담기에는 너무 많아서 여러 페이지로 나누어서 첫 번째 페이지에 이 코드를 사용하겠습니다.
\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}
이 코드를 실행하면 다음과 같은 결과가 나타납니다.
표준 형식이 아닌 서면 예에 표시된 숫자를 얻는 것이 가능합니까?
루프를 더 간단하게 만들고 평가를 사용하지 않고 다음과 같이 수행하는 것이 가능합니까?
\draw[shift={(\x*0.65,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[yshift = -20pt,rotate = 270] { \x*0.001 };
}
감사합니다
답변1
이미 .\pgfmathparse
evaluate
그냥 본문 \pgfmathprintnumber[fixed,precision=3]{\text}
에 사용하세요 node
. fixed
과학적 표기법을 비활성화합니다. 대신 \pgfmathprintnumber[fixed,fixed zerofill,precision=3]{\text}
get을 사용합니다 .0.000
0.0
\x*0.001
숫자로 구문 분석되지 않고 단지 텍스트이므로 노드 텍스트에서 직접 사용할 수 없습니다 . 라고 말할 수도 있겠지만 node[...]{\pgfmathparse{\x*0.001}\pgfmathprintnumber[fixed,precision=3]{\pgfmathresult}};
, 그렇다면 더 깨끗하다고 말하고 싶습니다 evaluate
.
\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}