森林树中的外生框

森林树中的外生框

我想添加一个箭头,将 PPP(无边)连接到 Pros。我该怎么做?是否可以在不从主根下降的框和下面的另一个框之间添加箭头?我可以添加一个箭头,将 Pros 连接到从公共根下降的下方框(例如将 pros 连接到“失败”?

谢谢

\usepackage{forest}
\usetikzlibrary{arrows.meta}

\begin{document}


\begin{figure}
\centering
    \begin{forest}
for tree={
% nodes
    draw, semithick, rounded corners,
    fill=green!39, drop shadow,
    text width=10em, text centered,
    font=\sffamily,
% tree
    s sep = 2mm,
    l sep = 5mm,
     edge = {arr},
        }
[Oil Wealth, fill=cyan, sharp corners [Societal D [Nate [IOCs , name=A1 ] [Substantial  [New]  [Government ,name=B1    [Failed, name=C1 [Opposition[Constitutional [Strong  ]]]]]]
    
    [YP , name=A3 ]]]
    
     [ppp,no edge, name=Z1 [Pros, no edge, name=Z2]]]
[Transfers ]
%

\path   (Z1)  edge (Z2) ;    
    \end{forest}


    
\caption{Causal Channels }


    \end{figure}  
    
\end{document}    

答案1

您可以将任何节点连接到您想要的任何其他节点,无论它们是否是树的一部分,只要您为节点指定一个name,您已经这样做了。但您不能在环境中放置一个空行forest,因为这会引发错误并且代码将无法编译(我已经在您的回答中提到过其他问题)。

您可能希望使用不覆盖其他节点的箭头连接“优点”和“失败”节点。请参阅下面的示例,其中提供了有关如何执行此操作的建议。另外,我认为最好指定节点的text heighttext depth,否则它们将无法正确对齐。

“Transfers”节点不会被打印,因为它不是主树的一部分。因此我将其注释掉。

\documentclass{article}

\usepackage{forest}
\usetikzlibrary{arrows.meta, shadows}

\begin{document}

\tikzset{
arr/.style={->}
}

\begin{figure}
\centering
\begin{forest}
for tree={
% nodes
    draw, semithick, rounded corners,
    fill=green!39, drop shadow,
    text width=10em, text centered,
    font=\sffamily,
    text height=.8em,
    text depth=.1em,
% tree
    s sep = 2mm,
    l sep = 5mm,
     edge = {arr},
}
[Oil Wealth, fill=cyan, sharp corners 
    [Societal D 
        [Nate 
            [IOCs , name=A1] 
            [Substantial  
                [New]  
                [Government , name=B1
                    [Failed , name=C1 
                        [Opposition
                            [Constitutional 
                                [Strong]
                            ]
                        ]
                    ]
                ]
            ]
            [YP , name=A3]
        ]
    ]
    [ppp, no edge, name=Z1 
        [Pros, no edge, name=Z2]
    ]
]
% [Transfers]
%
\draw[arr] (Z1) edge (Z2);    
\draw[arr] (Z2.east) -- ++(.25,0) |- (C1.east);    
\end{forest}

\caption{Causal Channels}
\end{figure}  
    
\end{document}    

在此处输入图片描述

相关内容