我有这个完整的子图:
\begin{tikzpicture}
\graph[nodes={draw, circle}, n=5, clockwise, radius=2cm]
{ subgraph K_n; };
\end{tikzpicture}
如果我想以某种方式区分顶点 3,我可以咨询这个问题
\begin{tikzpicture}
\graph[nodes={draw, circle}, n=5, clockwise, radius=2cm]
{ 1; 2; 3[fill=gray]; 4; 5; subgraph K_n; };
\end{tikzpicture}
现在,假设我不想突出显示它,而是想更改它的内容。例如,假设我想将其标签更改为希腊字母 alpha,而不是当前的 3。类似这样的操作将不起作用:
\begin{tikzpicture}
\graph[nodes={draw, circle}, n=5, clockwise, radius=2cm]
{ 1; 2; 3[contents=$\alpha$]; 4; 5; subgraph K_n; };
\end{tikzpicture}
还有其他方法可以完成这个相当简单的任务,或者通常以自定义方式标记 K_n 的顶点吗?当然,我可以手动绘制 K_5 并标记节点,但是 tikzgraphs.standard
库很好,我希望使用它来避免手动计算。
更新
我找到了一种用不同数字标记顶点 3 的方法。
\begin{tikzpicture}
\graph[nodes={draw, circle}, n=5, clockwise, radius=2cm]
{ subgraph K_n [V={1,2,7,4,5}];};
\end{tikzpicture}
7
如果我写的不是a
或FOO
(在最后一种情况下,它会使节点稍微大一些),这也有效。我甚至可以在那里放7/2
。
我不能用 代替7
(7,2
即使在 里面{...}
) 或\alpha
或$\alpha$
。{$\alpha$}
尝试其中任何一个只会破坏图表。
答案1
不确定这是否有帮助。它不使用,subgraph K_n
而是手动指定节点,以便可以根据需要指定其内容。clique
用于自动绘制连接,部分模拟提供的功能subgraph
。
\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{graphs,graphs.standard}
\begin{document}
\begin{tikzpicture}
\graph[nodes={draw, circle}, clique, n=5, clockwise, radius=2cm]
{
1/"$\alpha$", 2/"7,2", 3/"$x^2$", 4/"9,8,4", 5/"$\zeta$"
};
\end{tikzpicture}
\end{document}
答案2
非常感谢。这是非常有用的建议。我发现它也适用于简单的节点链graph
。所以我猜它适用于整个graph
库。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary {graphs}
\begin{document}
\tikz
\graph [
1/.style={ minimum size=10pt, draw, circle},
0/.style={empty nodes},
]
{
"" -!-06[0]-!-07[0]-!-08[0];
"" -!-16/"1"[1]->17/"2"[1]->18/"3"[1]->"y(n+3)";
"u(n+3)"-!-25/"1"[1]->26/"2"[1]->27/"3"[1]->"y(n+2)";
"u(n+2)"-!-34/"1"[1]->35/"2"[1]->36/"3"[1]->"y(n+1)";
"u(n+1)"-!-43/"1"[1]->44/"2"[1]->45/"3"[1]->"y(n)";
"u(n)" -!-52/"1"[1]->53/"2"[1]->54/"3"[1]->"y(n-1)";
"u(n-1)"-!-61/"1"[1]->62/"2"[1]->63/"3"[1]->"y(n-2)";
"u(n-2)"-!-b0-!-b1-!-b2;
b0->[dotted]62->54;
b1->[dotted]63;
"u(n-2)"->[dotted]61->53->45;"u(n-1)"->52->44->36;"u(n)"->43->35->27;"u(n+1)"->34->26->18;"u(n+2)"->25->17;
b0 ->61->52->43->34->25->16->[dotted]06;
b1 ->62->53->44->35->26->17->[dotted]07;
b2 ->63->54->45->36->27->18->[dotted]08;
};
\end{document}