2

Could anyone help me to draw the following in tikz?

  1. A straight line.
  2. On the line segment, I need to point out 0,1,2, \dots, k, k+1 in equal distance.
  3. Between 0 and 1 and in general k, k+1 segment, I need to highlight, 1,2,3, \dots, t.
  • 4
    I'm voting to close this question as off-topic because it is a do-it-for-mequestions. – Raaja Mar 16 '19 at 6:35
7
\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}
 \pgfmathtruncatemacro{\L}{10} %<- length of the line
 \pgfmathtruncatemacro{\kmax}{6} 
 \pgfmathtruncatemacro{\tmax}{7}
 \draw (0,0) -- (\L,0);
 \foreach \k in {0,...,\kmax}
  {\draw (\L*\k/\kmax,0.2) -- (\L*\k/\kmax,-0.2) \ifnum\k<2 node[below,text
  height=1.5ex]{$\k$}\fi
  \ifnum\k=\numexpr\kmax-1 node[below,text
  height=1.5ex]{$k$}\fi
  \ifnum\k=\kmax node[below,text
  height=1.5ex]{$k+1$}\fi;
  \ifnum\k<\kmax
  \foreach \t in {1,2,\tmax}
  {\draw ({\L*\k/\kmax+\L*(\t/(\tmax+1))/\kmax},0.1) 
  -- ({\L*\k/\kmax+\L*(\t/(\tmax+1))/\kmax},-0.1);}
  \fi}
\end{tikzpicture}
\end{document}

enter image description here

Or

\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}
 \pgfmathtruncatemacro{\L}{10} %<- length of the line
 \pgfmathtruncatemacro{\kmax}{6} 
 \pgfmathtruncatemacro{\tmax}{7}
 \draw (0,0) -- (\L,0);
 \foreach \k in {0,...,\kmax}
  {\draw (\L*\k/\kmax,0.2) -- (\L*\k/\kmax,-0.2) \ifnum\k<2 node[below,text
  height=1.5ex]{$\k$}\fi
  \ifnum\k=\numexpr\kmax-1 node[below,text
  height=1.5ex]{$k$}\fi
  \ifnum\k=\kmax node[below,text
  height=1.5ex]{$k+1$}\fi;
  \ifnum\k<\kmax
  \foreach \t in {1,2,...,\tmax}
  {\draw ({\L*\k/\kmax+\L*(\t/(\tmax+1))/\kmax},-0.1) 
  -- ({\L*\k/\kmax+\L*(\t/(\tmax+1))/\kmax},0.1)
  node[above] {$\ifnum\t=\tmax
  t\else\ifnum\t<4
  \t\else .\fi\fi$} ;}
  \fi}
\end{tikzpicture}
\end{document}

enter image description here

  • @Markov I made these changes but I am not sure I interpreted your requests correctly. If not, please consider adding a sketch of what you wish to achieve. – user121799 Mar 15 '19 at 22:09
  • @Markov The sticks are controlled by the loop \foreach \t in {1,2,\tmax}. If you change it to \foreach \t in {1,2,...,\tmax} then it draws all of them. I added such a possibility. I do not know what the typical ranges of \k and \t are, but I hope this gives you reasonable results in your use-case examples. – user121799 Mar 16 '19 at 14:03

Not the answer you're looking for? Browse other questions tagged or ask your own question.