Verwenden von Plot statt Text in der pgfplot-Legende

Verwenden von Plot statt Text in der pgfplot-Legende

Ich bin neugierig, ob es möglich ist, in der Legende eines mit pgfplots generierten Diagramms anstelle von Text ein benutzerdefiniertes Bild (z. B. ein Diagramm) zu verwenden. Insbesondere angesichts dieses 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}

Dadurch entsteht das folgende Diagramm

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

Ich möchte die tatsächliche Dichtefunktion einer Gleichverteilung in den Legendentext einfügen, z. B. möchte ich dies sehen (verkleinert)

PDF der Gleichverteilung

anstelle des Textes „Uniform(0, 1)“. Das Gleiche gilt natürlich auch für den Teil „Exponential(1)“.

Das einheitliche PDF-Diagramm wird auch mit pgfplots (MWC unten) generiert. Daher stellt sich möglicherweise die Frage, ob es möglich ist, ein pgfplot in einen Legendeneintrag einzubetten.

\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}

Später bearbeiten

Die von Torbjörn vorgeschlagene Lösung funktioniert; sie macht, was ich will:

Diagramm mit zwei Bildern in der Legende

Ich lasse die Frage offen, um zu sehen, ob es eine andere Möglichkeit gibt, alles im laufenden Betrieb zu generieren, ohne zuvor kompilierte Dateien einzubetten.

Antwort1

(Dies ist eine vollständig neu geschriebene Überarbeitung meiner ursprünglichen Antwort.)

Um die Beschreibung eines Legendeneintrags zu ändern, kann man \addlegendentry, legend entries, oder verwenden \legend. Folglich ist die Antwort von @Torbjorn der richtige Weg.

Es steht Ihnen jedoch frei, kleine Bilder in den Legendentext einzufügen; eine Beschränkung auf Text besteht nicht. Sie können hierfür beispielsweise einfach \tikz ... ;statt „Uniform“ schreiben.

Hier ist ein Ansatz basierend auf @Torbjorns Antwort und meinen Versuchen, ein mehr oder weniger passendes Bild zusammenzustellen:

\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}

Bildbeschreibung hier eingeben

Antwort2

Keine direkte Antwort, aber zumindest ein Workaround: Sie können \includegraphicsin einem Legendeneintrag verwenden, so dass Sie zuerst den Code kompilieren können, der die gleichmäßige Verteilung erzeugt, und dann verwenden

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

um das Bild zur Legende hinzuzufügen.

verwandte Informationen