Hallo zusammen. Ich hätte in der folgenden Grafik anstatt den normalen Pfeilen gerne Abbildungspfeile, also quasi Pfeile die einem "mapsto" entsprechen. Ist dies Irgendwie möglich? Viele Grüße, Christian

Open in Online-Editor
\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{amsfonts}
\usepackage{amssymb}
\newcommand\punkte[2][]{%
  \foreach \p in {#2}
    \node[draw,fill,circle,red,minimum size=2pt,inner sep=0pt,#1]at\p{};
}

\usetikzlibrary{positioning,arrows}
\tikzset{
  state/.style={circle,draw,minimum size=6ex},
  arrow/.style={-latex}}

\usetikzlibrary{hobby}
\begin{document}
\begin{tikzpicture}[scale=0.8]
        \draw (0,0) ellipse (30pt and 10pt)node[anchor=east]{$y$};
        \draw (0,2) ellipse (30pt and 10pt)node[anchor=east]{$x_i$};
        \draw (0,4) ellipse (30pt and 10pt)node[anchor=east]{$x_j$};
        \node at (-1.5,2){$U_i$};
        \node at (-1.5,4){$U_j$};
        \draw [arrow, bend left](1.2,2) to (1.2,0);
        \draw [arrow, bend left](1.2,4) to (1.4,0);
        \punkte{(0,0),(0,2),(0,4)};
        \end{tikzpicture}
    \end{document}

gefragt 17 Jan '15, 14:06

Chris3148's gravatar image

Chris3148
1615712
Akzeptiert-Rate: 66%

bearbeitet 07 Feb '16, 10:52

saputello's gravatar image

saputello
11.1k174365

1

utf8x solltest Du übrigens nur verwenden, wenn Du es unbedingt brauchst. Für westliche Sprachen genügt normalerweise utf8. utf8x macht mit einigen Paketen nämlich Probleme.

(21 Jan '15, 17:55) saputello

Hallo Christian,

meinst du so:

Open in writeLaTeX
\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{amsfonts}
\usepackage{amssymb}
\newcommand\punkte[2][]{%
  \foreach \p in {#2}
    \node[draw,fill,circle,red,minimum size=2pt,inner sep=0pt,#1]at\p{};
}

\usetikzlibrary{positioning,arrows}
\tikzset{
  state/.style={circle,draw,minimum size=6ex},
  arrow/.style={|-latex}}

\usetikzlibrary{hobby}
\begin{document}
  \begin{tikzpicture}[scale=0.8]
    \draw (0,0) ellipse (30pt and 10pt)node[anchor=east]{$y$};
    \draw (0,2) ellipse (30pt and 10pt)node[anchor=east]{$x_i$};
    \draw (0,4) ellipse (30pt and 10pt)node[anchor=east]{$x_j$};
    \node at (-1.5,2){$U_i$};
    \node at (-1.5,4){$U_j$};
    \draw [arrow, bend left](1.2,2) to (1.2,0);
    \draw [arrow, bend left](1.2,4) to (1.4,0);
    \punkte{(0,0),(0,2),(0,4)};
  \end{tikzpicture}
\end{document}

Ich hab arrow/.style={-latex}} auf arrow/.style={|-latex}} geändert.

Die arrows Library scheint übrigens veraltet zu sein. Man benützt nun arrows.meta

Gruß Tom

Permanenter link

beantwortet 17 Jan '15, 14:33

tom75's gravatar image

tom75
2.2k277984
Akzeptiert-Rate: 57%

Ja, genauso habe ich mir das vorgestellt. Ich danke euch beiden vielmals. Und auch nochmal danke für die Tips bzgl. des Codes. Ich bin noch nicht ganz so vertraut damit und sowas bringt einen immer weiter.

(21 Jan '15, 17:19) Chris3148

Die gewünschte Pfeilform kannst Du, wie schon @tom75 geschrieben hat, mit |-latex zeichnen lassen und das sogar ganz ohne irgendeine Pfeilbibliothek zu laden. Erst wenn Du die Pfeile weiter anpassen möchtest, brauchst Du die arrows.meta Bibliothek.

In Deinem Code fällt mir aber vor allem auf, dass Du die Koordinaten für die Beschriftung und die Pfeile absolut angibst. Du könntest auch ellipse Nodes verwenden und diese dann beschriften und verbinden lassen. Ein leicht vergrößerter outer sep sorgt dafür, dass die Pfeile etwas Abstand zu den Nodes haben. Wenn Du dann noch \foreach Schleifen verwendest, musst Du die verschiedenen y Koordinaten sogar nur einmal eingeben. Außerdem würde ich den Wert für bend left etwas vergrößern.

Open in writeLaTeX
\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}% für Ellipsen
\tikzset{
  arrow/.style={|-latex},
  myellipse/.style={ellipse,draw,
    minimum width=60pt, minimum height=20pt,
    inner sep=0pt,outer sep=3pt}
}
\newcommand\punkte[2][]{%
  \foreach \p in {#2}
    \node[draw,fill,circle,red,minimum size=2pt,inner sep=0pt,#1]at\p{};
}

\begin{document}
\begin{tikzpicture}[scale=0.8]
  \foreach[count=\i] \y/\t/\b in {0/y/, 2/x_i/U_i, 4/x_j/U_j}{
      \path(0,\y)
        node(e\i)[myellipse,transform shape,label=left:$\b$]{} 
        node[anchor=east]{$\t$};
      \punkte{(0,\y)}
    }
  \foreach \i/\v in {2/3pt,3/-3pt}
    \draw [arrow, bend left=60](e\i.east) to ([yshift=\v]e1.east);
\end{tikzpicture}
\end{document}

alt text

Oder man verwendet beim Zeichnen der Pfeile out=0,in=0 statt bend left:

Open in writeLaTeX
\foreach \i/\v in {2/3pt,3/-3pt}
  \draw [arrow, out=0,in=0](e\i.east) to ([yshift=\v]e1.east);

alt text

Permanenter link

beantwortet 17 Jan '15, 15:15

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 18 Jan '15, 02:17

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:

×731
×35
×6

gestellte Frage: 17 Jan '15, 14:06

Frage wurde gesehen: 14,222 Mal

zuletzt geändert: 07 Feb '16, 10:52