
Sé que hay una manera de usar "graphs.standard" y "subgraph k_n" para obtener un gráfico de cinco nodos que parece una estrella completa, como en la imagen adjunta.
¿Pero existe la posibilidad de decirle a LaTeX que solo quiero ciertos bordes? Quiero explicar las listas de adyacencia y las matrices en una diapositiva y solo necesito algunas de ellas.
¿Necesito dibujar el gráfico completo yo mismo o puedo indicarle a LaTeX los bordes que quiero?
Respuesta1
Aquí hay una macro \incomplete
que hará el trabajo por usted. La sintaxis es
\incomplete[<radius>]{<num vertices>}{<edge list>}
Los dos ejemplos anteriores se crean con \incomplete{5}{1/2,1/3,1/4,1/5,2/4,2/5}
y\incomplete{6}{1/2,2/3,3/4,4/5,5/6,6/1,2/4}
<radius>
es opcional. El valor predeterminado es 1.5cm
. <edgelist>
es una lista separada por comas con cada entrada del formulario vertex1/vertex2
. <edgelist>
puede estar vacío, por ejemplo, \incomplete{5}{}
.
Aquí está el código:
\documentclass{article}
\usepackage{tikz}
\tikzset{vertex/.style={draw, circle, inner sep=1mm}}
\newcommand{\incomplete}[3][1.5cm]{\begin{tikzpicture}
\foreach \n in {1,...,#2}{\node[vertex]at({90-360/#2*(\n-1)}:#1)(\n){\n};}
\foreach \v/\w in {#3}{\draw(\v)--(\w);}
\end{tikzpicture}}
\begin{document}
\incomplete{5}{1/2,1/3,1/4,1/5,2/4,2/5}\hspace{2cm}\incomplete{6}{1/2,2/3,3/4,4/5,5/6,6/1,2/4}
\end{document}
Respuesta2
Al especificar que la gráfica essimple, se pueden modificar los bordes de una macro de gráfico e incluso eliminarlos con la -!-
especificación de borde especial:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs.standard}
\begin{document}
\begin{tikzpicture}
\graph[nodes={circle,draw},simple] {
subgraph K_n [n=5,clockwise];
2 -!- 3 -!- 4 -!- 5 -!- 3;
};
\end{tikzpicture}
\end{document}