我是新来的。我觉得这里是问这个问题的合适地方。
基本上,我想输入一个像这样的简单完整的图表:
http://commons.wikimedia.org/wiki/File:Complex_network_K6_complete_graph.png
我想要的是将顶点和边标签放在边和顶点的顶部。
我该怎么做?我应该使用哪些软件包以及应该输入哪些命令?
抱歉,我应该附上这张照片来展示我的想法。谢谢!
答案1
graph
您可以为此使用 TikZ 及其出色的库。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs,graphs.standard}
\begin{document}
\begin{tikzpicture}
\graph { subgraph K_n [n=8,clockwise,radius=2cm] };
\end{tikzpicture}
\end{document}
您还可以非常轻松地添加边缘标签:
\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,graphs.standard,quotes}
\begin{document}
\begin{tikzpicture}
\graph[circular placement, radius=4cm,
empty nodes, nodes={circle,draw}] {
\foreach \x in {a,...,f} {
\foreach \y in {\x,...,f} {
\x -- \y;
};
};
a --["3"'] b;
a --["2"' near start] c;
a --["1", near start] e;
a --["1",] f;
e --["2"'] f;
};
\foreach \x [count=\idx from 0] in {a,...,f} {
\pgfmathparse{90 + \idx * (360 / 6)}
\node at (\pgfmathresult:4.4cm) {\x};
};
\draw (a) edge[red, thick] node[black,left,pos=.2] {1} (d);
\end{tikzpicture}
\end{document}
答案2
这只是 PSTricks 的另一个建议。代码及其输出的可读性都保持较高水平。
\documentclass[pstricks]{standalone}
\usepackage{pst-eucl}
\degrees[6]
\begin{document}
\begin{pspicture}(-5,-5)(5,5)
\multido{\iA=0+1,\iB=1+1}{6}{\Cnode[radius=3mm](4;\iA){N\iB}\rput(N\iB){\iB}}
\multido{\iA=1+1}{5}{%
\multido{\iB={\numexpr\iA+1\relax}+1}{\numexpr6-\iA}{%
\ncline[strokeopacity=.25]{N\iB}{N\iA}\ncput*[nrot=:U,npos=.8]{\scriptsize$\iA\leftrightarrow\iB$}}}
\end{pspicture}
\end{document}
答案3
运行xelatex
\documentclass[pstricks]{standalone}
\usepackage{pst-node,multido}
\begin{document}
\begin{pspicture}(-5,-5)(5,5)
\degrees[6]
\multido{\iA=0+1,\iB=1+1}{6}{\Cnode[radius=3mm](4;\iA){N\iB}\rput(N\iB){\iB}}
\multido{\iA=1+1}{5}{%
\multido{\iB={\numexpr\iA+1\relax}+1}{\numexpr6-\iA}{\ncline{N\iA}{N\iB}}}
\multido{\iA=1+1}{5}{% The same for the labels
\multido{\iB={\numexpr\iA+1\relax}+1}{\numexpr6-\iA}{%
\ncline[linestyle=none]{N\iA}{N\iB}\ncput*[npos=0.65]{\scriptsize$\iA\leftrightarrow\iB$}}}
\end{pspicture}
\end{document}