TiKz-Paket: So ersetzen Sie Punkte durch Zahlen in der Funktionsbereichszuordnung

TiKz-Paket: So ersetzen Sie Punkte durch Zahlen in der Funktionsbereichszuordnung

Ich versuche herauszufinden, wie ich die Punkte in den Kreisen durch numerische Werte (1, 2, 3 usw.) ersetzen kann.

Helfen Sie mir bitte herauszufinden, welche Codezeilen ich bearbeiten muss, um diesen Ersatz zu erreichen.

Dank im Voraus!

mwe (h/t pecusse)

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,fit}
\begin{document}
\begin{tikzpicture}
%put some nodes on the left
\foreach \x in {1,2,3}{
\node[fill,circle,inner sep=2pt] (d\x) at (0,\x) {};
}
\node[fit=(d1) (d2) (d3),ellipse,draw,minimum width=1cm] {}; 
%put some nodes on the center
\foreach \x[count=\xi] in {0.5,1.5,...,4}{
\node[fill,circle,inner sep=2pt] (r\xi) at (2,\x) {};
}
\node[fit=(r1) (r2) (r3) (r4),ellipse,draw,minimum width=1.5cm] {}; 
%put some nodes on the right
\foreach \x[count=\xi] in {0.75,1.5,...,3}{
\node[fill,circle,inner sep=2pt] (c\xi) at (4,\x) {};
}
\node[fit=(c1) (c2) (c3) (c4) ,ellipse,draw,minimum width=1.5cm] {};
\draw[-latex] (d1) -- (r2);
\draw[-latex] (d2) -- (r2);
\draw[-latex] (d3) -- (r4);
\draw[-latex] (r1) -- (c2);
\draw[-latex] (r2) -- (c3);
\draw[-latex] (d3) -- (r4);
\end{tikzpicture}
\end{document}

Antwort1

Ich weiß nicht, welche Zahlen Du wo platzieren möchtest, aber im Allgemeinen sollte der Inhalt eines Knotens zwischen den geschweiften Klammern stehen: \node[options] (name) at (0,0) {};.

In Ihrem Beispiel möchten Sie vielleicht die Zahlen aus der \foreachSchleife, die im Makro gespeichert sind, in die Knoten einfügen \x. Da die Knoten schwarz gefüllt sind, wäre der Text darin nicht sichtbar. Daher würde ich vorschlagen, dass Sie die Füllfarbe ändern, beispielsweise mit fill=lightgray. Sie können also etwas wie Folgendes schreiben: \node[fill=lightgray,circle,inner sep=2pt] (d\x) at (0,\x) {\x};.

Wenn Sie dies für alle drei Knotensätze tun, werden Sie feststellen, dass die Knoteninhalte unterschiedlich lang sind und daher die Kreise eine unterschiedliche Größe haben. Einige Knoten enthalten beispielsweise nur eine Ziffer, während andere drei und einen Punkt als Dezimaltrennzeichen enthalten. Sie möchten minimum width=2.5emden Knoten wahrscheinlich die Option (oder etwas Ähnliches) hinzufügen, um für alle Knoten die gleiche Größe zu erhalten.

Und schließlich können Sie, weil sich die Knoten aufgrund der größeren Größe möglicherweise überlappen, y=1.25cmfür das Ganze die Option festlegen tikzpicture, die die vertikalen Abstände vergrößert, die horizontalen Abstände jedoch unverändert lässt.

Alles zusammengenommen käme man auf:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,fit}

\begin{document}
\begin{tikzpicture}[y=1.25cm]
%put some nodes on the left
\foreach \x in {1,2,3}{
    \node[fill=lightgray,circle,inner sep=2pt,minimum width=2.5em] (d\x) at (0,\x) {\x};
}
\node[fit=(d1) (d2) (d3),ellipse,draw,minimum width=1cm] {}; 

%put some nodes on the center
\foreach \x[count=\xi] in {0.5,1.5,...,3.5}{
    \node[fill=lightgray,circle,inner sep=2pt,minimum width=2.5em] (r\xi) at (2,\x) {\x};
}
\node[fit=(r1) (r2) (r3) (r4),ellipse,draw,minimum width=1.5cm] {}; 

%put some nodes on the right
\foreach \x[count=\xi] in {0.75,1.5,...,3}{
    \node[fill=lightgray,circle,inner sep=2pt,minimum width=2.5em] (c\xi) at (4,\x) {\x};
}
\node[fit=(c1) (c2) (c3) (c4),ellipse,draw,minimum width=1.5cm] {};

\draw[-latex] (d1) -- (r2);
\draw[-latex] (d2) -- (r2);
\draw[-latex] (d3) -- (r4);
\draw[-latex] (r1) -- (c2);
\draw[-latex] (r2) -- (c3);
\draw[-latex] (d3) -- (r4);
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben


Wenn Sie keinen Hintergrund hinter den Zahlen haben möchten, können Sie die Optionen für die Knoten wahrscheinlich ganz löschen (außerdem müssen Sie nicht festlegen y=1.25cm). Möglicherweise möchten Sie etwas Farbe hinzufügen (ähnlich dem Bild, das Sie in Ihrem Kommentar bereitgestellt haben), daher habe ich dem linken Oval und einem der Pfeile etwas Farbe hinzugefügt:

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,fit}

\begin{document}
\begin{tikzpicture}
%put some nodes on the left
\foreach \x in {1,2,3}{
    \node (d\x) at (0,\x) {\x};
}
\node[fit=(d1) (d2) (d3),ellipse,draw=blue,minimum width=1cm] {}; 

%put some nodes on the center
\foreach \x[count=\xi] in {0.5,1.5,...,3.5}{
    \node (r\xi) at (2,\x) {\x};
}
\node[fit=(r1) (r2) (r3) (r4),ellipse,draw,minimum width=1.5cm] {}; 

%put some nodes on the right
\foreach \x[count=\xi] in {0.75,1.5,...,3}{
    \node (c\xi) at (4,\x) {\x};
}
\node[fit=(c1) (c2) (c3) (c4),ellipse,draw,minimum width=1.5cm] {};

\draw[-latex,orange] (d1) -- (r2);
\draw[-latex] (d2) -- (r2);
\draw[-latex] (d3) -- (r4);
\draw[-latex] (r1) -- (c2);
\draw[-latex] (r2) -- (c3);
\draw[-latex] (d3) -- (r4);
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen