# How does one draw the following graph? Can anyone help me as to how I can draw the above picture using TikZ or PSTricks? I am not familiar with those two packages.

Come on! Jump in to water. Don't just stand on shore if you want to learn swimming.

This is a very easy diagram which you should have tried yourself to get started. Easy? See below:

\documentclass[tikz,border=5]{standalone}
\begin{document}
\begin{tikzpicture}
\draw (-1,0) -- (5,0)
(0,-1) -- (0,3)
(-1,1) -- (5,1)node[anchor=west,scale=0.5]{$y=1$};
\draw (0,0) -- (1,1) -- (2,0) -- (3,1) -- (4,0);
\foreach \x in {1,3}{
\draw[dashed] (\x,1.1)  -- (\x,0) node[pos=1.1,scale=0.5]{\x/4};
}
\path[dashed] (2,1.1)  -- (2,0) node[pos=1.1,scale=0.5]{2/4};
\end{tikzpicture}
\end{document} So easy that I may even get a down vote for answering! ;)

For learning/more details on TikZ please refer to its (huge) manual. To get this, run texdoc pgfmanual from the command prompt/terminal or your TeX editor may provide a menu for (La)TeX doc.

• Should I downvote? :) – azetina Jan 18 '15 at 6:19
• @azetina :-) As you wish ;) – user11232 Jan 18 '15 at 6:20

A PSTricks solution:

\documentclass{article}

\usepackage{lmodern,xfrac} % for the fractions
\usepackage{pstricks-add}  % for the rest of the drawing

\begin{document}

\psset{unit = 2, linejoin = 2}
\begin{pspicture}(-0.5,-0.5)(3,1.2)
\psaxes[labels = none, ticks = none]{->}(0,0)(-0.5,-0.5)(2.5,1.2)
\multido{\i = 1+1, \r = 0.5+0.5}{3}{%
\psline[linestyle = dotted](\r,1)(\r,0)
\uput(\r,0){$\sfrac{\i}{4}$}}
\psline(-0.3,1)(2.5,1)
\uput(2.5,1){$y = 1$}
\psline(0,0)(0.5,1)(1,0)(1.5,1)(2,0)
\end{pspicture}

\end{document} Another version, giving the same output but it might be a 'better' one nonetheless, is as follows:

\documentclass{article}

\usepackage{lmodern,xfrac} % for the fractions
\usepackage{pstricks-add}  % for the rest of the drawing

% redefinition of the x-axis labels (printing them in the correct range)
\makeatletter
\def\pst@@@hlabel#1{%
\ifnum #1<0
%     <print nothing>
\else
\ifnum #1<4
\sfrac{#1}{4}
\else
%       <print nothing>
\fi
\fi%
}
\makeatother

\begin{document}

\psset{unit = 2, linejoin = 2}
\begin{pspicture}(-0.5,-0.5)(3,1.2)
\psaxes[
dx = 0.5,
labels = x,
xlabelsep = 0pt,
ticks = none
]{->}(0,0)(-0.5,-0.5)(2.5,1.2)
\multido{\i = 1+1, \r = 0.5+0.5}{3}{%
\psline[linestyle = dotted](\r,1)(\r,0)}
\psline(-0.3,1)(2.5,1)
\uput(2.5,1){$y = 1$}
\psline(0,0)(0.5,1)(1,0)(1.5,1)(2,0)
\end{pspicture}

\end{document} Update

Here is a 'manual' another version where the fractions have been reduced:

\documentclass{article}

\usepackage{lmodern,xfrac} % for the fractions
\usepackage{pstricks-add}  % for the rest of the drawing

\def\Label(#1)#2#3{%
\psline[linestyle = dotted](#1,1)(#1,0)
\uput(#1,0){$\sfrac{#2}{#3}$}}

\begin{document}

\psset{unit = 2, linejoin = 2}
\begin{pspicture}(-0.5,-0.5)(3,1.2)
\psaxes[labels = none, ticks = none]{->}(0,0)(-0.5,-0.5)(2.5,1.2)
\Label(0.5){1}{4}
\Label(1){1}{2}
\Label(1.5){3}{4}
\psline(-0.3,1)(2.5,1)
\uput(2.5,1){$y = 1$}
\psline(0,0)(0.5,1)(1,0)(1.5,1)(2,0)
\end{pspicture}

\end{document} With the mfpic package:

\documentclass[12pt]{article}
\usepackage{mathtools}
\usepackage[metapost]{mfpic}
\setlength{\mfpicunit}{1cm}
\opengraphsfile{\jobname}
\begin{document}
\begin{mfpic}{-0.25}{1.25}{-0.25}{1.25}
\lines{(-0.2, 1), (\xmax, 1)}
\lines{(0, 0), (0.25, 1), (0.5, 0), (0.75, 1), (1, 0)}
\mfpfor{k = 1, 2, 3} \dotted\lines{(k/4, 0), (k/4, 1)} \endmfpfor
\tlpointsep{3bp}
\tlabels{[tc](0.25, 0){$\dfrac{1}{4}$} [tc](0.5, 0){$\dfrac{1}{2}$}
[tc](0.75, 0){$\dfrac{3}{4}$} [cl](\xmax, 1){$y=1$}}
\doaxes{xy}
\end{mfpic}
\closegraphsfile
\end{document} If this file is called, say, graph.tex, compile it with LaTeX to generate a graph.mp MetaPost file, then compile this file with MetaPost to produce the actual (PostScript) graph, and finally graph.tex with (pdf)LaTeX to include this file in your document. It's best automatized with a script (which would depend on your installation and TeX editor of course). It works with LaTeX and pdfLaTeX, and probably with XeLaTeX and LuaLaTeX as well.

• It is a good thing that you are giving this answer so that people get a taste of alternate methods. It would be nice (for beginners) if you give details of how to compile this. Keep pouring answers like this. +1 :) – user11232 Jan 18 '15 at 0:02
• @Harish Kumar: I've completed my answer. :-) – Franck Pastor Jan 18 '15 at 6:54