使用 \foreach 循环获取带小数点的负值

使用 \foreach 循环获取带小数点的负值

由于\foreach循环不接受带小数点的值;我伪造了在 x 轴上放置小数点的位置。

我无法在 y 轴上实现这一点,因为它使用负值,在这种情况下负号放在小数点后面。

为了伪造使用带小数点的负值,我使用了以下代码这个问题

有没有更简单的方法可以自动化此操作而无需安装额外的软件包(出于安全原因,我工作场所的计算机不允许安装任何程序)。

\documentclass{beamer}
\beamertemplatenavigationsymbolsempty
\usepackage{verbatim}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{frame}[t]
\frametitle{}
\begin{tikzpicture}[scale=.9, transform shape]
\draw [thick] (0,0) -- (7,0);
\draw [thick] (0,0) -- (0,5);
%begin x/y tickmarks
\pgfmathsetmacro{\incrmnty}{.6}
\pgfmathsetmacro{\incrmntx}{1}
%begin y tickmarks
\begin{scope}[xshift=0, yshift=-.6cm]
\foreach[count=\j] \i in {-6,...,2}{
\ifnum\i=0
\draw[thick] (-.14,\j*\incrmnty) node[xshift=-.2cm]{0}coordinate(\i) -- +(0:.2);
\else
\ifnum\i=-6
\draw[thick] (-.2,\j*\incrmnty) node[xshift=-.28cm]{-.6}coordinate(\i) -- +(0:.2);
\else
\ifnum\i=-4
\draw[thick] (-.2,\j*\incrmnty) node[xshift=-.28cm]{-.4}coordinate(\i) -- +(0:.2);
\else
\ifnum\i=-2
\draw[thick] (-.2,\j*\incrmnty) node[xshift=-.28cm]{-.2}coordinate(\i) -- +(0:.2);
\else
\ifnum\i=2
\draw[thick] (-.2,\j*\incrmnty) node[xshift=-.28cm]{.2}coordinate(\i) -- +(0:.2);
 \fi \fi \fi \fi\fi}
\end{scope}
%end y tick marks
%begin x tickmarks
\begin{scope}[xshift=-1cm, yshift=0cm]
\foreach[count=\j] \i in {0,...,6}{
\ifnum\i=0
\draw[thick] (\j*\incrmntx,0) -- +(-90:.2) node[yshift=-.26cm]{0}coordinate(\i);
\else
\draw [thick] (\j*\incrmntx,0) -- +(-90:.2) node[yshift=-.26cm]{.\i}coordinate(\i);
\fi}
\end{scope}
%end x tick marks
%end x/y tickmarks
\end{tikzpicture}
\end{frame}
\end{document}

在此处输入图片描述

答案1

如果您不想加载任何其他包,并且有如此简单的数字列表,我认为以下解决方案比您的解决方案更简单。我已将所有想要的数字写为刻度标签,它们可以是小数。

\documentclass{beamer}
\beamertemplatenavigationsymbolsempty
\usepackage{verbatim}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{frame}[t]
\frametitle{}
\begin{tikzpicture}[scale=.9, transform shape]
\draw [thick] (0,0) -- (7,0);
\draw [thick] (0,0) -- (0,5);
%begin x/y tickmarks
\pgfmathsetmacro{\incrmnty}{.6}
\pgfmathsetmacro{\incrmntx}{1}
%begin y tickmarks
\foreach\i [count=\j from 0] in {-.6,-.4,-.2,0,.2}
    \draw[thick] (0,\j*\incrmnty) coordinate(\i) --++(180:.2) node[left]{\i};
\foreach \i [count=\j from 0] in {0,.1,.2,.3,.4,.5,.6}
    \draw[thick] (\j*\incrmntx,0) coordinate(\i) -- ++(-90:.2) node[below]{\i};
%end x tick marks
%end x/y tickmarks
\end{tikzpicture}
\end{frame}
\end{document}

在此处输入图片描述

相关内容