如何绘制超图(森林)?

如何绘制超图(森林)?

我怎样才能绘制这样的超图结构(又名森林):

森林

(注:这不是这个问题,当然,因为那幅画非常不同。)

答案1

我只给出了结构,但你可以“轻松地”手工完成。我没有足够的时间来完成图表,但你只需要定义一些节点,然后放上箭头。最后的箭头很简单。

\documentclass[11pt]{article} 
\usepackage[upright]{fourier} 
\usepackage{tikz}
\usetikzlibrary{arrows,calc}

\begin{document}
\begin{tikzpicture}
\node(A){$NPB_{0,1}$} ;
\node(B) at ($(A)+(2,0)$){$CC_{1,2}$} ; 
\node(C) at ($(B)+(2,0)$){$P_{1,2}$} ;   
\node(D) at ($(C)+(2,0)$){$NPB_{2,3}$} ;   
\node(E) at ($(D)+(2,0)$){$VV_{3,4}$} ;   
\node(F) at ($(E)+(2,0)$){$AS_{4,5}$} ;   
\node(G) at ($(F)+(2,0)$){$NPB_{5,6}$} ; 
\node(Deb) at (5,8){$IP_{0,6}$};
\node(FF) at ($(F)+(0,4)$){$VBP_{3,6}$} ;  
\node(BB) at ($(B)+(0,5)$){$NP_{0,3}$} ; 
\draw[->] (A) to[out=90,in=180] (3,7)--(4,7) to[out=0,in=-90](Deb); 
\draw[rounded corners=2cm,
       dashed,->] (FF)to[out=90,in=-60] ($(Deb)+(.5,0)$);
\draw[dashed,->] (A) to [in =-90,out =90](BB);
\draw[dashed,->] (BB) to [in =-180,out =90] ++(2,1) to [out=0,in=-70]($(Deb)+(.5,0)$);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容