我有以下 MWE
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[{x=(1mm, 0)},{y=(0,1mm)}]
%-> DEFINITIONS
\def\plthgt{50} % plot height
\pgfmathsetmacro\pltstp{\plthgt/4} % plot step value
%-> DRAWING THE PLOT
\draw[thick]
(0, 0)--
(0, \plthgt)
;
\foreach \y in {0, \pltstp, ..., \plthgt}
\pgfmathsetmacro\yvalue{4000*\y/\plthgt}
\draw
(0, \y)--
(-2, \y)
node[left]{\yvalue}
;
\end{tikzpicture}
\end{document}
我正在尝试绘制这个:
当我执行\pgfmathsetmacro\yvalue{4*\y/\plthgt}
和时,我得到了相当接近的结果node[left]{\yvalue 00}
,但由于打印不方便0.000
,并且剩余值带有.
分隔符。
有针对这种情况的解决方案吗?谢谢!
答案1
只需改变运算顺序即可。即先计算商,然后乘以:
\pgfmathtruncatemacro\yvalue{4000*(\y/\plthgt)}
为了获取整数,请使用\pgfmathtruncatemacro
。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[{x=(1mm, 0)},{y=(0,1mm)}]
%-> DEFINITIONS
\def\plthgt{50} % plot height
\pgfmathsetmacro\pltstp{\plthgt/4} % plot step value
%-> DRAWING THE PLOT
\draw[thick]
(0, 0)--
(0, \plthgt)
;
\foreach \y in {0, \pltstp, ..., \plthgt}
\pgfmathtruncatemacro\yvalue{4000*(\y/\plthgt)}
\draw
(0, \y)--
(-2, \y)
node[left]{\yvalue}
;
\end{tikzpicture}
\end{document}
如果你想要达到更高的价值,你需要做出额外的努力,例如
\documentclass{article}
\usepackage{tikz}
\usepackage{fp}
\usetikzlibrary{fixedpointarithmetic}
\begin{document}
\begin{tikzpicture}[{x=(1mm, 0)},{y=(0,1mm)}]
%-> DEFINITIONS
\def\plthgt{50} % plot height
\pgfmathsetmacro\pltstp{\plthgt/4} % plot step value
%-> DRAWING THE PLOT
\draw[thick]
(0, 0)--
(0, \plthgt)
;
\begin{scope}[/pgf/fixed point arithmetic]
\foreach \y in {0, \pltstp, ..., \plthgt}
{
\pgfmathtruncatemacro\yvalue{40000*(\y/\plthgt)}
\draw
(0, \y)--
(-2, \y)
node[left]{\yvalue}
;}
\end{scope}
\end{tikzpicture}
\end{document}