Guten Abend,

ich bin auf der Suche nach einer eleganten möglichkeit die Graphen der drei Funktionen (z.B.) hier zu beschriften. Ich habe herausgefunden, dass man per Hand mittels

Open in writeLaTeX
   \coordinate [label={below right:$Name der Funktion$}] (A) at (0, 0);

die Graphen beschriften kann, was ja sehr umständlich sein kann, wenn es viele Graphen werden.

Es gibt sicherlich eine bessere Lösung. Hat jemand eine Idee?

gefragt 15 Jun '14, 13:19

uniQue_'s gravatar image

uniQue_
109511
Akzeptiert: 66%


Legende

Die einfachste und meiner Meinung nach übersichtlichste Variante ist die Verwendung einer Legende. Dabei kann man die Legendeneinträge zum Beispiel über den \legend Befehl vornehmen, der eine kommaseparierte Liste aller Einträge als Argument erwartet. Die Position der Legende lässt sich über die axis Option legend pos ändern.

alt text

Code:

Open in writeLaTeX
\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}[thick]
  \begin{axis}[
      no markers,
      samples=200,
      smooth,
      domain=-0.4:0.4,
      axis lines=middle,
      enlarge y limits={0.05,upper},
      xtick = {-0.3, -0.2, -0.1, 0.1, 0.2, 0.3},
      %legend pos=outer north east,
    ]
    \pgfplotsinvokeforeach{2,3,4}{
      \addplot{pow(sin(deg(pi*x*(#1+1)))/sin(deg(pi*x)),2)/(#1+1)};
    }
    \legend{$f_1$,$f_2$,$f_3$}
  \end{axis}
\end{tikzpicture}
\end{document}

Beschriftung direkt an den einzelnen Plots

Ein Plot lässt sich auch durch so etwas wie

Open in writeLaTeX
\addplot {<plotfunktion>}node[right,pos=0.5]{<name>};

wobei pos=0.5 die Mitte des Plots bezeichnet und right angibt, dass <name> rechts daneben gesetzt werden soll. Will man die Beschriftung innerhalb einer Schleife vornehmen, dann braucht man weitere Schleifenvariablen: mindestens eine für <name> und eventuell zwei weitere für die Positionierung und Ausrichtung. Bei vielen Plots kann das schnell unübersichtlich werden.

alt text

Code:

Open in writeLaTeX
\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}[thick]
  \begin{axis}[
      no markers,
      samples=200,
      smooth,
      domain=-0.4:0.4,
      axis lines=middle,
      enlarge y limits={0.05,upper},
      xtick = {-0.3, -0.2, -0.1, 0.1, 0.2, 0.3},
    ]
    \pgfplotsforeachungrouped \i/\name in {2/$f_1$,3/$f_2$,4/$f_3$}{
      \pgfmathsetmacro\p{0.8-\i*0.05}
      \edef\temp{%
        \noexpand\addplot{pow(sin(deg(pi*x*(\i+1)))/sin(deg(pi*x)),2)/(\i+1)}
          node[right,pos=\p]{\name};}%
      \temp
    }
  \end{axis};
\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 15 Jun '14, 15:22

esdd's gravatar image

esdd
15.1k53652

bearbeitet 15 Jun '14, 16:28

Hey, das sieht ja wie immer toll aus! Ich habe jetzt noch ein wenig daran rumgespielt, aber schaffe es leider nicht: Wie kann ich denn die Graphen mit D_i mit i=1,2,3 beschriften? Bei dieser Indizierung bekomme ich immer Fehlermeldungen.

(15 Jun '14, 15:53) uniQue_

@uniQue_ $D_i$ braucht den Mathemodus - evtl. fehlt der? Sonst zeig das genaue Problem samt Fehlermeldung vllt. in einer neuen Frage.

(15 Jun '14, 16:07) stefan ♦♦

Hi, ich glaube ich habe peinlicher Weise die $-Zeichen vergessen. Jetzt klappt es. Super Lösung!

(16 Jun '14, 04:51) uniQue_

Hallo Esdd,

@esdd Deine Antwort zur Beschriftung eines Plots hat mir sehr geholfen. Jedoch habe ich ein kleines Problem.

Ich habe folgenden Code von dir verwendet: addplot {}node[right,pos=0.5]{};

Jetzt habe ich das Problem, dass in dem einen Diagramm die Beschriftung mit einem Abstand zur Linie angezeigt wird, im nächsten Diagramm jedoch ist die Beschriftung genau auf der Linie.

Gibt es eine Möglichkeit diesen Abstand einheitlich festzulegen?

Grüße

(16 Mai, 10:12) Seppell05

@Seppell05 Ich habe Deine „Antwort“ in einen Kommentar umgewandelt. Hier sind Antworten stets echte Antworten, keine Gespräche oder Rückfragen oder Zusatzinfos, sondern Lösungen. Das verbessert die Übersicht erheblich für die Archivierung der Lösungen. Ungewohnt und anders als in Webforen, doch innovativ und nutzbarer. Bemerkungen gern wie hier als Kommentare.

(16 Mai, 10:29) Clemens

@Seppell05 Vielleicht wäre in dem sogar eine neue Frage (mit Link auf diese bzw. die Antwort angebracht. Natürlich mit dazu passendem Minimalbeispiel!

(17 Mai, 09:58) saputello
Ergebnis 5 von 6 Alle anzeigen
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×7

Frage gestellt: 15 Jun '14, 13:19

Frage wurde angeschaut: 3,268 Mal

Zuletzt aktualisiert: 17 Mai, 09:59