# Is it possible to combine cases with pgfplots legend?

I would like to print a function and add a legend which makes use of cases.

The current code is:

\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}

\usepackage{amssymb,amsmath}
\usepackage{pgfplots}

\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,
legend style={at={(0.8,0.8)}, anchor=north}]
\legend{$1 \text{, if } x \in \mathbb{Q}$, $0 \text{, if } x \in \mathbb{R} \setminus \mathbb{Q}$}
\end{axis}
\end{tikzpicture}
\end{preview}
\end{document}


Which produces:

and I would like to get something like this:

(made with gimp and this LaTeX-piece:

$f(x) = \begin{cases} 1 & \text{if } x \in \mathbb{Q}\\ 0 & \text{if } x \in \mathbb{R} \setminus \mathbb{Q} \end{cases}$


)

Is it possible to make a legend like this directly in LaTeX?

-

Here is one possibility:

\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,]
\label{plot one}
\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}


The result:

In order to achieve a better vertical alignment, consider to change:

\tikz[baseline=-0.5ex]


into:

\tikz[baseline=-\mathvalign]


where \mathvalign is:

\def\mathvalign{\the\dimexpr\fontdimen22\textfont2\relax}

-