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.
Wie der Dokumentation von [tt]\addlegendentry[/tt] in Abschnitt 4.9.4 "Legends" der [doc]pgfplots[/doc]-Anleitung zu entnehmen ist, können mit dem Befehl Legendeneinträge zu Plots erstellt werden, die mit [tt]\addplot[/tt] erzeugt wurden. Du willst hier aber offenbar eine Legende zu den [tt]\filldraw[/tt]-Anweisungen. Das geht prinzipiell, indem du mit [tt]\addlegendimage{<legend options>}[/tt] quasi Pseudo-Plots erzeugst. Der Befehl wird nämlich auch von jedem [tt]\addplot[/tt] intern verwendet. Dabei wären [tt]<legend options>[/tt] die Optionen zur Darstellung des Eintrags. Allerdings ist zu beachten, dass die [tt]\addlegendimage[/tt] Aufrufe in der Reihenfolge der [tt]\addlegendimage[/tt] und [tt]\addplot[/tt] 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:
[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]
\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}
[/code]
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.