Manuelle Legende mit tikzpicture (axis) einfügen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Manuelle Legende mit tikzpicture (axis) einfügen

Re: Manuelle Legende mit tikzpicture (axis) einfügen

von lina_24642 » Di 21. Jun 2022, 13:19

Vielen Dank Gute*r Gȧst*i - genau nach sowas habe ich gesucht1

Re: Manuelle Legende mit tikzpicture (axis) einfügen

von Gute*r Gȧst*in » Di 21. Jun 2022, 11:44

Wie der Dokumentation von \addlegendentry in Abschnitt 4.9.4 "Legends" der pgfplots-Anleitung zu entnehmen ist, können mit dem Befehl Legendeneinträge zu Plots erstellt werden, die mit \addplot erzeugt wurden. Du willst hier aber offenbar eine Legende zu den \filldraw-Anweisungen. Das geht prinzipiell, indem du mit \addlegendimage{<legend options>} quasi Pseudo-Plots erzeugst. Der Befehl wird nämlich auch von jedem \addplot intern verwendet. Dabei wären <legend options> die Optionen zur Darstellung des Eintrags. Allerdings ist zu beachten, dass die \addlegendimage Aufrufe in der Reihenfolge der \addlegendimage und \addplot abgearbeitet werden. Du müsstest also im Prinzip die Legende bereits vor dem ersten Plot erstellen, wenn der Plot selbst nicht in die Legende soll:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots,amsmath}
\pgfplotsset{compat=1.17}

\begin{document}  

\begin{tikzpicture}
    \begin{axis}[
            domain=-4:4,
            samples=50,
            legend style={font=\small},
            legend cell align=left,
            legend pos=south east]
            \addlegendimage{line legend,green}\addlegendentry{Klasse 1}
            \addlegendimage{line legend,red}\addlegendentry{Klasse 0}
        \addplot+[mark=None, line width = 1.2] { 1 / (1 + 1 * exp(-1*x)) };
                        
        \filldraw[green] (-0.5,0.05) circle (2pt) node[anchor=east] {};%{B(-4,5)}
        \filldraw[green] (-3.8,0) circle (2pt) node[anchor=east] {};
        \filldraw[green] (-3.5,0) circle (2pt) node[anchor=east] {};
        \filldraw[green] (-3.2,0) circle (2pt) node[anchor=east] {};
        \filldraw[green] (-2.8,0.005) circle (2pt) node[anchor=east] {};
        \filldraw[green] (-2.5,0.01) circle (2pt) node[anchor=east] {};
        \filldraw[green] (-2.2,0.015) circle (2pt) node[anchor=east] {};
        \filldraw[green] (-1.8,0.02) circle (2pt) node[anchor=east] {};

        \filldraw[red] (0,0.95) circle (2pt) node[anchor=east] {};%{B(-4,5)}
        \filldraw[red] (3.8,1) circle (2pt) node[anchor=east] {};
        \filldraw[red] (3.5,1) circle (2pt) node[anchor=east] {};
        \filldraw[red] (3.2,1) circle (2pt) node[anchor=east] {};
        \filldraw[red] (2.8,0.995) circle (2pt) node[anchor=east] {};
        \filldraw[red] (2.5,0.99) circle (2pt) node[anchor=east] {};
        \filldraw[red] (2.2,0.99) circle (2pt) node[anchor=east] {};
        \filldraw[red] (1.8,0.985) circle (2pt) node[anchor=east] {}; 
        
    \end{axis}
\end{tikzpicture}

\end{document}
Wobei mir nicht klar ist, warum du aus den grünen und roten Punkten keine Plots machst. Aber das wäre eine andere Frage, die an anderer Stelle zu klären wäre. Für die Lösung ist es vermutlich egal.

Manuelle Legende mit tikzpicture (axis) einfügen

von lina_24642 » Di 21. Jun 2022, 10:46

Liebes Forum,

ich habe eine Grafik erstellt und in diese auch einige manuelle Punkte hinzugefügt. Nun möchte ich eine Legende (unten rechts) einfügen, die die verschiedenen Punkte erklärt:
- roter Punkt: Klasse 1
- grüner Punkt: Klasse 0

Ich habe gelesen, dass man es über \addlegendentry probieren kann. Allerdings funktioniert das bei mir noch nicht. Kann mir da eventuell jemand helfen?

Das ist mein aktueller Code:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots,amsmath}
\pgfplotsset{compat=1.17}

\begin{document}  

\begin{tikzpicture}
    \begin{axis}[
            domain=-4:4,
            samples=50,
            legend style={font=\small},
            legend cell align=left,
            legend pos=south east]
        \addplot+[mark=None, line width = 1.2] { 1 / (1 + 1 * exp(-1*x)) };
                        
        \filldraw[green] (-0.5,0.05) circle (2pt) node[anchor=east] {};%{B(-4,5)}
        \filldraw[green] (-3.8,0) circle (2pt) node[anchor=east] {};
        \filldraw[green] (-3.5,0) circle (2pt) node[anchor=east] {};
        \filldraw[green] (-3.2,0) circle (2pt) node[anchor=east] {};
        \filldraw[green] (-2.8,0.005) circle (2pt) node[anchor=east] {};
        \filldraw[green] (-2.5,0.01) circle (2pt) node[anchor=east] {};
        \filldraw[green] (-2.2,0.015) circle (2pt) node[anchor=east] {};
        \filldraw[green] (-1.8,0.02) circle (2pt) node[anchor=east] {};

        \addlegendentry{Klasse 1}
                        
        \filldraw[red] (0,0.95) circle (2pt) node[anchor=east] {};%{B(-4,5)}
        \filldraw[red] (3.8,1) circle (2pt) node[anchor=east] {};
        \filldraw[red] (3.5,1) circle (2pt) node[anchor=east] {};
        \filldraw[red] (3.2,1) circle (2pt) node[anchor=east] {};
        \filldraw[red] (2.8,0.995) circle (2pt) node[anchor=east] {};
        \filldraw[red] (2.5,0.99) circle (2pt) node[anchor=east] {};
        \filldraw[red] (2.2,0.99) circle (2pt) node[anchor=east] {};
        \filldraw[red] (1.8,0.985) circle (2pt) node[anchor=east] {}; 
        
        \addlegendentry{Klasse 0}
                    
    \end{axis}
\end{tikzpicture}

\end{document}

Nach oben