% Thanks to Claudio Fiandrino for his help
% Source: http://tex.stackexchange.com/a/75695/5645
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}

\usepackage{amssymb,amsmath}
\usepackage{pgfplots}
\pgfplotsset{compat=1.6}

\begin{document}
\begin{preview}
\begin{tikzpicture}
    \begin{axis}[
        axis lines=middle,
        width=15cm, height=15cm,     % size of the image
        grid = both,
        grid style={dashed, gray!30},
        enlargelimits=true,
        xmin=-1,     % start the diagram at this x-coordinate
        xmax= 1,     % end   the diagram at this x-coordinate
        ymin= 0,     % start the diagram at this y-coordinate
        ymax= 1,     % end   the diagram at this y-coordinate
        /pgfplots/xtick={-1,-0.8,...,1}, % make steps of length 0.2
        /pgfplots/ytick={0,0.1,...,1},   % make steps of length 0.1
        axis background/.style={fill=white},
        ylabel=y,
        xlabel=x,]
      \addplot[domain=-1:1, ultra thick,samples=100,blue]  {1};
      \label{plot one}
      \addplot[domain=-1:1, ultra thick,samples=100,red] {0};
      \label{plot two}
      \node [draw,fill=white] at (rel axis cs: 0.8,0.8) {\shortstack[l]{
      $f(x) =
    \left\lbrace\begin{array}{@{}l@{}l@{}l@{}}
       \tikz[baseline=-0.5ex]\node{\ref{plot one}}; \phantom{1cm}& 1 &  \text{ if } x \in \mathbb{Q}\\
       \tikz[baseline=-0.5ex]\node{\ref{plot two}}; & 0 & \text{ if } x \in \mathbb{R} \setminus \mathbb{Q}
    \end{array}\right.
$}};
    \end{axis}
\end{tikzpicture}
\end{preview}
\end{document}
