Usando plot em vez de texto na legenda do pgfplot

Usando plot em vez de texto na legenda do pgfplot

Estou curioso para saber se é possível usar uma imagem customizada (por exemplo, plot) em vez de texto dentro da legenda de um gráfico gerado com pgfplots. Especificamente, dado este MWC:

\documentclass{standalone}
\usepackage{pgfplots}

\pgfplotsset{compat=newest}

\begin{document}
    \tikzset{every mark/.append style={scale=0.75}}
    \begin{tikzpicture}

    \begin{axis}[xlabel=$x$, ymin=0, xmin=-1.1, xmax=1.1, samples=300, ylabel=$f(x)$,
                 smooth,
                 legend style={ legend cell align=left, at={(1.03, 1)}, anchor=north west}
                 ]
        \addplot coordinates {
                              (-1, 0)
                              (0, 0.5)
                              (1, 1)
                              };
        \addlegendentry{Uniform(0,1)};
        \addplot coordinates {
                              (-1, 1)
                              (0, 0.2)
                              (1, 0)
                              };
        \addlegendentry{Exponential(1)};
    \end{axis}
    \end{tikzpicture}
\end{document}

que produz o gráfico abaixo

http://i.imgur.com/T2zVNe5.png

Gostaria de inserir a função de densidade real de uma distribuição uniforme no texto da legenda, por exemplo, quero ver isso (reduzido)

PDF de distribuição uniforme

em vez do texto "Uniform(0, 1)". Claro, semelhante para a parte Exponencial(1).

O gráfico Uniform PDF também é gerado com pgfplots (MWC abaixo), então a questão, talvez, seja se é possível incorporar um pgfplot dentro de uma entrada de legenda.

\documentclass{standalone}
\usepackage{pgfplots}

\pgfplotsset{compat=newest}

\begin{document}
    \tikzset{every mark/.append style={scale=0.75}}
    \begin{tikzpicture}

    \begin{axis}[ymin=0, xmin=0, xmax=1, ymax=2,xticklabels=none, yticklabels=none]
        \addplot[color=black, fill=black] (x,1) \closedcycle;
    \end{axis}
    \end{tikzpicture}
\end{document}

Edição posterior

A solução proposta por Torbjorn funciona; faz o que eu quero:

Lote com duas imagens na legenda

Vou deixar a questão em aberto para ver se existe outra possibilidade de gerar tudo na hora, sem incorporar arquivos previamente compilados.

Responder1

(Esta é uma revisão completamente reescrita da minha resposta inicial)

Para modificar a descrição de uma entrada de legenda, pode-se usar \addlegendentry, legend entries, ou \legend. Conseqüentemente, a resposta do @Torbjorns é o caminho a seguir.

No entanto, você pode inserir pequenas imagens no texto da legenda; não há restrição ao texto. Para este fim, você pode simplesmente escrever \tikz ... ;em vez de, digamos, "Uniforme".

Aqui está uma abordagem baseada na resposta do @Torbjorns e nas minhas tentativas de montar uma imagem mais ou menos adequada:

\documentclass{standalone}
\usepackage{pgfplots}

\pgfplotsset{compat=newest}

\begin{document}
    \tikzset{every mark/.append style={scale=0.75}}
    \begin{tikzpicture}

    \begin{axis}[xlabel=$x$, ymin=0, xmin=-1.1, xmax=1.1, samples=300, ylabel=$f(x)$,
                 smooth,
                 legend style={ legend cell align=left, at={(1.03, 1)}, anchor=north west}
                 ]
        \addplot coordinates {
                              (-1, 0)
                              (0, 0.5)
                              (1, 1)
                              };
        \addlegendentry{
                \begin{tikzpicture}
                    \fill[draw] (0cm,0cm) rectangle (0.6cm,-0.15cm);
                    \draw (0cm,0cm) rectangle (0.6cm,+0.15cm);
                \end{tikzpicture}
        }
        \addplot  coordinates {
                              (-1, 1)
                              (0, 0.2)
                              (1, 0)
                              };
        \addlegendentry{
                \tikz\draw[mark=none,samples=11,domain=-2.5:2.5,xshift=1em,yshift=-0.05cm,xscale=0.015,yscale=0.03]  plot (\x,{exp(-(\x)^2)});
        }
    \end{axis}
    \end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

Responder2

Não é uma resposta direta, mas pelo menos uma solução alternativa: você pode usar \includegraphicsem uma entrada de legenda, para poder primeiro compilar o código gerando a distribuição uniforme e depois usar

\addlegendentry{\includegraphics[width=1cm]{FilenameOfPDFwithUniformDist}};

para adicionar a imagem na legenda.

informação relacionada