13

I want to draw a very simple number line, i found some code that got me started here. I have modified the code to get the following picture

enter image description here

The problem is that I want the numbers below the line to show up as {-3,2,1,0,1,2,3} but I can't figure out how to modify the following code to do this.

\usetikzlibrary{arrows}
\begin{tikzpicture}
\draw[latex-] (-6.5,0) -- (6.5,0) ;
\draw[-latex] (-6.5,0) -- (6.5,0) ;
\foreach \x in  {-6,-4,-2,0,2,4,6}
\draw[shift={(\x,0)},color=black] (0pt,3pt) -- (0pt,-3pt);
\foreach \x in {-6,-4,-2,0,2,4,6}
\draw[shift={(\x,0)},color=black] (0pt,0pt) -- (0pt,-3pt) node[below] 
{$\x$};
\draw[*-o] (0.92,0) -- (2.08,0);
\draw[very thick    ] (0.92,0) -- (1.92,0);

\end{tikzpicture}

It would nice if I could just divide \x by 2 in place of node[below] {$\x$}, but I don't know how to do this. Thanks!

6
  • Change {-6,-4,-2,0,2,4,6} to {-3,-2,-1,0,1,2,3}
    – azetina
    Dec 3, 2013 at 23:20
  • I didn't mean to write \x2= int(mod(\x +2,3)) in the middle of the code. I deleted it now. Dec 3, 2013 at 23:31
  • 2
    Similar visualization: [1]; different visualization: [2], [3]. Dec 3, 2013 at 23:39
  • 2
    You can use $\pgfmathprint{int(\x/2)}$ as node text. By the way, why don't you put the node part in the first loop and remove the second one entirely? If you want to follow @azetina's comment, you can use {-3,...,3} but with x=2cm or xscale=2. Dec 3, 2013 at 23:49
  • @Qrrbrbirlbel You should post an answer so the OP can learn different methods. Mine is minimal.
    – azetina
    Dec 3, 2013 at 23:55

2 Answers 2

15

See the following MWE:

enter image description here

\documentclass[letterpaper]{article}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}
\draw[latex-latex] (-3.5,0) -- (3.5,0) ; %edit here for the axis
\foreach \x in  {-3,-2,-1,0,1,2,3} % edit here for the vertical lines
\draw[shift={(\x,0)},color=black] (0pt,3pt) -- (0pt,-3pt);
\foreach \x in {-3,-2,-1,0,1,2,3} % edit here for the numbers
\draw[shift={(\x,0)},color=black] (0pt,0pt) -- (0pt,-3pt) node[below] 
{$\x$};
\draw[*-o] (0.92,0) -- (2.08,0);
\draw[very thick] (0.92,0) -- (1.92,0);
\end{tikzpicture}
\end{document}

Here is something that can work for now with the scaling:

\begin{tikzpicture}[scale=2.5]
\draw[very thick] (1,0) -- (2,0);
\path [draw=black, fill=black] (1,0) circle (2pt);
\path [draw=black, fill=white, thick] (2,0.0) circle (2pt);
\draw[latex-latex] (-3.5,0) -- (3.5,0) ;
\foreach \x in  {-3,-2,-1,0,1,2,3}
\draw[shift={(\x,0)},color=black] (0pt,3pt) -- (0pt,-3pt);
\foreach \x in {-3,-2,-1,0,1,2,3}
\draw[shift={(\x,0)},color=black] (0pt,0pt) -- (0pt,-3pt) node[below] 
{$\x$};
\end{tikzpicture}
5
  • How about if I want to make more space between each number? Dec 3, 2013 at 23:27
  • @JimmyJackson Well the way you have defined the intervals on the number line will look weird if you make it bigger.
    – azetina
    Dec 3, 2013 at 23:36
  • scale will scale everything including small circle and ticks ;)
    – user11232
    Dec 3, 2013 at 23:55
  • @HarishKumar Yeah I know, I warned the OP about it.
    – azetina
    Dec 3, 2013 at 23:56
  • For scaling, you can also use \pgfsetxvec{\pgfpoint{2.5cm}{0cm}} (as documented on p.290 of the tikzpgf manual), which will scale dimensionless x-coordinates. You need to adjust your .92 and 2.08, however.
    – Nat Kuhn
    Apr 28, 2020 at 13:23
7
\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-plot}
\psset{xunit=15mm}
\begin{document}
\begin{pspicture}(-3,-.5)(3,.5)
    \psaxes[yAxis=false,ticksize=0 -4pt]{<->}(0,0)(-3,-1)(3,1)
    \psline[linecolor=blue,arrowscale=1.25]{o-*}(.5,0)(2,0)
\end{pspicture}
\end{document}

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .