
Estoy tratando de descubrir cómo reemplazar los puntos en los círculos con valores numéricos (1, 2, 3, etc.)
Ayúdenme a identificar qué líneas de código necesito editar para realizar este reemplazo.
¡Gracias de antemano!
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}
Respuesta1
No sé qué números le gustaría colocar y dónde, pero en general, el contenido de un nodo debe colocarse entre llaves: \node[options] (name) at (0,0) {
... };
.
En su ejemplo, es posible que desee colocar en los nodos los números del \foreach
bucle que están almacenados en la macro \x
. Dado que los nodos están rellenos de negro, el texto del interior no sería visible. Por lo tanto, le sugeriría que cambie el color de relleno usando, por ejemplo, fill=lightgray
. Entonces, puedes escribir algo como: \node[fill=lightgray,circle,inner sep=2pt] (d\x) at (0,\x) {\x};
.
Si hace esto para los tres conjuntos de nodos, descubrirá que el contenido de los nodos tiene diferente longitud y, por lo tanto, los círculos tendrán un tamaño diferente. Por ejemplo, algunos nodos sólo contienen un dígito, mientras que otros contienen tres y un punto como separador decimal. Probablemente quieras agregar la opción minimum width=2.5em
(o similar) a los nodos para obtener el mismo tamaño para todos los nodos.
Finalmente, debido a que los nodos pueden superponerse debido al aumento de tamaño, puede configurar la opción y=1.25cm
para todo el conjunto tikzpicture
que aumenta las distancias verticales mientras mantiene las distancias horizontales como estaban.
Tomando todo junto, obtendrías:
\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}
Si no desea ningún trasfondo detrás de los números, probablemente pueda eliminar las opciones de los nodos por completo (además, no sería necesario configurar y=1.25cm
). Es posible que desees agregar algo de color (similar a la imagen que proporcionaste en tu comentario), por eso agregué algo de color al óvalo izquierdo y a una de las flechas:
\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}