自动显示小时和分钟的时间轴

自动显示小时和分钟的时间轴

前段时间我问过关于时间轴的问题,给出了许多解决方案,但最终我决定使用 TikZ,并且提出我的解决方案.但如果没有Torbjørn T. 的评论,他建议自动创建日期,这很有帮助,因为我不需要自己输入所有内容,最重要的是,它节省了我的 Tex 文档的空间。解决方案是1

\documentclass[10pt]{article}

\usepackage[a4paper, landscape]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{rotating}
\usepackage{pgfplots}
%\usepackage{changepage}
\usepackage{tikz}
\usetikzlibrary{arrows,backgrounds,snakes}

\begin{document}

    \begin{tikzpicture}

       %draw horizontal line   
       \draw[|->, -latex] (0,0) -- (17,0);
       \draw[-, dashed] (-1,0) -- (0,0);

       %draw years

       \foreach \x [evaluate=\x as \year using int(1790+\x*10)] in {0,1,...,17}{ 

            \draw (\x,0) node[below=7pt,anchor=east,xshift=0,rotate=45] {$\year$}; 
            }

       \draw[] (0,-0.1) -- (0,0.1);
       \draw[] (1,-0.1) -- (1,0.1);
       \draw[] (2,-0.1) -- (2,0.1);
       \draw[] (3,-0.1) -- (3,0.1);
       \draw[] (4,-0.1) -- (4,0.1);
       \draw[] (5,-0.1) -- (5,0.1);
       \draw[] (6,-0.1) -- (6,0.1);
       \draw[] (7,-0.1) -- (7,0.1);
       \draw[] (8,-0.1) -- (8,0.1);
       \draw[] (9,-0.1) -- (9,0.1);
       \draw[] (10,-0.1) -- (10,0.1);
       \draw[] (11,-0.1) -- (11,0.1);
       \draw[] (12,-0.1) -- (12,0.1);
       \draw[] (13,-0.1) -- (13,0.1);
       \draw[] (14,-0.1) -- (14,0.1);
       \draw[] (15,-0.1) -- (15,0.1);
       \draw[] (16,-0.1) -- (16,0.1);

   \end{tikzpicture}

\end{document}

结果是:

截屏

... 并且它继续(太长了,这里放不下)。现在我想重新创建它,但要加上小时和分钟,这样我才能在行底看到它们00:00等等01:00

这可能是无限的,因为我打算制作一份长的横向文档(不会打印,只用于数字用途,所以没问题)。

我尝试过调整代码并搜索此网站,但无济于事。我该怎么做?代码是否可以使用多年,但不能像我想要的那样使用很长时间?我真的不知道从哪里开始。


1:这实际上是一个最小的工作示例。我指的是评论中报告的行。

答案1

通过对循环进行一些小小的改变\foreach你就会得到我认为是期望的结果:

在此处输入图片描述

笔记:

您可以大大简化您的代码:

  • 我注释掉了这个 MWE 不需要的包。
  • 通过设置\MaxNumber您可以轻松更改一个参数并增加图片的宽度(页面尺寸需要调整)。
  • 各个\draw命令可以处于\foreach循环之中。

代码:

\documentclass[10pt]{article}

\usepackage[a4paper, landscape]{geometry}
%\usepackage[utf8]{inputenc}
%\usepackage{rotating}
%\usepackage{pgfplots}
%\usepackage{changepage}
\usepackage{tikz}
%\usetikzlibrary{arrows,backgrounds,snakes}

\newcommand*{\MaxNumber}{17}%
\begin{document}
    \begin{tikzpicture}
       %draw horizontal line   
       \draw[|->, -latex] (0,0) -- (\MaxNumber,0);
       \draw[-, dashed] (-1,0) -- (0,0);

       %draw hours
       \foreach \x  in {0,...,\MaxNumber} {% 
            \draw (\x,0) node[below=7pt,anchor=east,xshift=0,rotate=45] {\x:00}; 
            \draw[] (\x,-0.1) -- (\x,0.1);
            }
   \end{tikzpicture}
\end{document}

相关内容