Moin zusammen,

bei folgenden, beiden Digrammen möchte ich statt schrittliche Beschreibung für Graphen zwei Bilder einfügen. Das heißt, dass ich erstens zwei Kreise jeweils in einem rechteckigen Rahmen mit weißem Hintergrund einfügen und danach als Beschreibung für beide Kurve auf jeweilige Kurve legen möchte (blaue Kurve gehört zum blauen Kreis und rote Kurve zum roten Kreis). Kann jemand mir damit helfen?

Viele Dank!

Open in Online-Editor
\documentclass{article}
\usepackage{pgfplots}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
width=4.521in,
height=3.566in,
at={(0.758in,0.481in)},
scale only axis,
separate axis lines,
every outer x axis line/.append style={black},
every x tick label/.append style={font=\color{black}},
xmin=0,
xmax=6,
every outer y axis line/.append style={black},
every y tick label/.append style={font=\color{black}},
ymin=0,
ymax=900,
axis background/.style={fill=white},
legend style={legend cell align=left,align=left,draw=black}
]
\begin{scope}
\draw[fill=red!, opacity=0.5] (300,500) circle (20pt);
\end{scope}

\draw[fill=blue!, opacity=0.5] (200,400) circle (20pt);
\addplot [color=blue,solid]
table[row sep=crcr]{%
    0   1\\
    1   2.71828182845905\\
    2   7.38905609893065\\
    3   20.0855369231877\\
    4   54.5981500331442\\
    5   148.413159102577\\
    6   403.428793492735\\
};
\addlegendentry{case 1};
\addplot [color=blue,solid]
table[row sep=crcr]{%
    0   2\\
    1   5.43656365691809\\
    2   14.7781121978613\\
    3   40.1710738463753\\
    4   109.196300066288\\
    5   296.826318205153\\
    6   806.85758698547\\
};
\addlegendentry{case 2};
\addplot [color=red,solid,forget plot]
table[row sep=crcr]{%
    0   2\\
    1   5.43656365691809\\
    2   14.7781121978613\\
    3   40.1710738463753\\
    4   109.196300066288\\
    5   296.826318205153\\
    6   806.85758698547\\
};
\end{axis}
\end{tikzpicture}%
\end{document}

gefragt 02 Dez '15, 12:34

vague_creature's gravatar image

vague_creature
21132126
Akzeptiert-Rate: 0%

bearbeitet 02 Dez '15, 16:25

esdd's gravatar image

esdd
17.7k254256

Ist das nicht genau die gleiche Frage wie: Wie kann ich Bilder in Legende eines Diagramms einfügen?

(03 Dez '15, 10:41) saputello

Da war ich auch am Zweifeln. Aber hier ging es vermutlich hauptsächlich um die Positionierung der beiden Bilder auf den Plots, während es in der anderen Frage um die Bilder als Beschreibung in der Legende ging. Und in der anderen Frage war nicht fest gelegt, ob es externe Abbildungen sein sollen oder wie hier direkt gezeichnete. Wenn es dort auch nur um direkt gezeichnete ging, dann wäre die andere Frage ein Duplikat zu der hier.

(03 Dez '15, 10:48) esdd

@esdd: Aha. Für mich sah und sieht das schlicht so aus, als habe @vague_creature die Frage hier noch einmal ein klein wenig anders formuliert, zumal keinerlei Verweis auf die andere (eher geringfügig ältere) Frage vorhanden ist und nicht angegeben ist, was der entscheidende Unterschied sein soll. Deshalb wollte ich noch einmal nachfragen, ob es einen solchen tatsächlich gibt. Falls es den gibt, wäre es vielleicht trotzdem sinnvoll gewesen, die erste Antwort abzuwarten, um darauf Bezug nehmen zu können? Ich lasse mich aber gerne eines besseren belehren.

(03 Dez '15, 11:09) saputello

@saputello: Ich habe jetzt zumindest mal beide Antworten so bearbeitet, dass man bei denen vielleicht den wirklich kleinen Unterschied sieht. Aber Du kannst gerne eine der beiden Fragen als Duplikat der anderen schließen.

(03 Dez '15, 11:15) esdd

Ich habe aus dem Beispiel mal die überflüssigen Optionen rausgenommen und das Zeichnen des zweiten Plots zunächst in blau sowie das forget plot bei dem roten entfernt. Mag sein, dass das alles irgendeinen Sinn hatte, aber ich verstehe ihn nicht und damit gibt es in der Legende dann wenigstens tatsächlich eine rote Linie.

Du kannst am Ende eines Plots einen Node angeben und mit der Option pos festlegen, wo dieser relativ zum Plotpfad plaziert wird. Du kannst auch mehrere Nodes angeben:

Open in Online-Editor
\addplot ...
    node[pos=.75,draw=black,fill=white,inner sep=11pt]{}
    node[pos=.75,circle,fill,inner sep=6pt,opacity=.5]{};

Wenn Du mehrere dieser Bildchen brauchst und die einheitlich sein sollen, kann man sich dafür ein pic definieren und das wie einen Node einfügen.

Open in Online-Editor
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\tikzset{
  kreisbox/.pic={
    \node(rahmen)[draw=black,fill=white,inner sep=11pt]{};
    \node[circle,fill,inner sep=6pt,opacity=.5]{};}
}

\begin{document}
\begin{tikzpicture}
\begin{axis}[%
  width=4.521in,
  height=3.566in,
  at={(0.758in,0.481in)},
  scale only axis,
  xmin=0,
  xmax=6,
  ymin=0,
  ymax=900,
  legend style={column sep=5pt,legend cell align=left,align=left}
]
\addplot [color=blue] table[row sep=crcr]{%
    0   1\\
    1   2.71828182845905\\
    2   7.38905609893065\\
    3   20.0855369231877\\
    4   54.5981500331442\\
    5   148.413159102577\\
    6   403.428793492735\\
}pic[pos=.75]{kreisbox};
\addplot [color=red] table[row sep=crcr]{%
    0   2\\
    1   5.43656365691809\\
    2   14.7781121978613\\
    3   40.1710738463753\\
    4   109.196300066288\\
    5   296.826318205153\\
    6   806.85758698547\\
}pic[pos=.75]{kreisbox};

\end{axis}
\end{tikzpicture}%
\end{document}

ergibt

alt text

Wenn die Markierungen auch als Beschreibung in die Legende sollen, dann ist es besser sie in einer Box zu speichern, siehe auch Wie kann ich Bilder in Legende eines Diagramms einfügen?.

Open in Online-Editor
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\newbox\mybox
\newcommand{\tikzBox}[2][\mybox]{\sbox#1{\pgfinterruptpicture#2\endpgfinterruptpicture}}

\tikzset{
  kreisbox/.pic={
    \node(rahmen)[draw=black,fill=white,inner sep=11pt]{};
    \node[circle,fill,inner sep=6pt,opacity=.5]{};}
}

\begin{document}
\begin{tikzpicture}
\newbox\caseI
\newbox\caseII
\tikzBox[\caseI]{\tikz\pic[blue]{kreisbox};}
\tikzBox[\caseII]{\tikz\pic[red]{kreisbox};}
\begin{axis}[%
  width=4.521in,
  height=3.566in,
  at={(0.758in,0.481in)},
  scale only axis,
  xmin=0,
  xmax=6,
  ymin=0,
  ymax=900,
  legend style={column sep=5pt,legend cell align=left,align=left}
]
\addplot [color=blue] table[row sep=crcr]{%
    0   1\\
    1   2.71828182845905\\
    2   7.38905609893065\\
    3   20.0855369231877\\
    4   54.5981500331442\\
    5   148.413159102577\\
    6   403.428793492735\\
}node[pos=.75]{\usebox\caseI};
\addlegendentry{\scalebox{.5}{\usebox\caseI}}
\addlegendentry{\scalebox{.5}{\usebox\caseII}}
\addplot [color=red] table[row sep=crcr]{%
    0   2\\
    1   5.43656365691809\\
    2   14.7781121978613\\
    3   40.1710738463753\\
    4   109.196300066288\\
    5   296.826318205153\\
    6   806.85758698547\\
}node[pos=.75]{\usebox\caseII};

\end{axis}
\end{tikzpicture}%
\end{document}

ergibt

alt text

Permanenter link

beantwortet 02 Dez '15, 16:06

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

bearbeitet 03 Dez '15, 11:08

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×728
×296
×41
×11

gestellte Frage: 02 Dez '15, 12:34

Frage wurde gesehen: 8,767 Mal

zuletzt geändert: 03 Dez '15, 11:15