帶有交叉箭頭的圖表

帶有交叉箭頭的圖表

我的問題是我的圖表中有交叉線/箭頭,在搜尋過程中,我剛剛找到了類似的答案這裡這不適合我的問題。也許有人可以幫我解決這個問題。從公司到政府的箭頭必須與中央銀行和銀行之間的箭頭交叉,但以一種人們可以閱讀文字的方式。是否可以將箭頭放在不同的圖層上或其他什麼?

\tikzset{
    %Define standard arrow tip
    >=stealth',
    %Define style for boxes
    punkt/.style={
           rectangle,
           rounded corners,
           draw=black, very thick,
           text width=6.5em,
           minimum height=3.5em,
           text centered}
}


\begin{tikzpicture}[node distance=1cm, auto, description/.style={fill=white,inner sep=2pt}]

 %nodes
 \node[punkt]                      (Banks)  {Banks ($B_b$)};
 \node[left=4cm of Banks]          (dummy1) {};
 \node[right=4cm of Banks]         (dummy2) {};
 \node[punkt, above=4cm of dummy1] (CB)     {CB};
 \node[punkt, below=4cm of dummy1] (Gov)    {Government};
 \node[punkt, above=4cm of dummy2] (Firms)  {Firms ($F_f$)};
 \node[punkt, below=4cm of dummy2] (HH)     {HH ($HH_{hh}$)};


\path[->, >=latex, thick]
  (Gov.20)      edge[] node[below, rotate=48]  {\small Bonds}                       (Banks.220)
  (Banks.200)   edge[] node[above, rotate=48]  {\small Deposits}                    (Gov.40)
  (Firms.250)   edge[] node[above, rotate=90]  {\small wage, dividends}             (HH.110)
  (HH.70)       edge[] node[below, rotate=90]  {\small equity, consumption}         (Firms.290)
  (Gov.350)     edge[] node[below]             {\small unempl. benefit}             (HH.190)
  (HH.170)      edge[] node[above]             {\small Taxes}                       (Gov.10)
  (CB.325)      edge[] node[below, rotate=-50] {\small interest, OSDF}              (Banks.160)
  (Banks.143)   edge[] node[above, rotate=-50] {\small interest, IDL, OMO, OSLF}    (CB.345)
  (Firms.200)   edge[] node[above, rotate=48]  {\small principal/interest payments} (Banks.40)
  (Banks.20)    edge[] node[below, rotate=48]  {\small Loans, interest}             (Firms.220)
  (HH.143)      edge[] node[above, rotate=-50]  {\small equity}                     (Banks.345)
  (Banks.325)   edge[] node[below, rotate=-50]  {\small interest, dividends}        (HH.160)
  (Banks.west)  edge[out=200, in=340, looseness=5] node[below]  {\small interbank loans} (Banks.east)
  (Firms.170)   edge[bend right=35]                node[above, near end, rotate=60]  {\small Taxes}               (Gov.120);
\end{tikzpicture}

在此輸入影像描述

答案1

我喜歡簡單的解決方案:(1) 繪製交叉邊緣,(2) 繪製一個半透明的白色矩形以使其在背景中淡出,(3) 在其頂部繪製其他內容。

\path[->, >=latex, thick](Firms.170)   edge[bend right=35]   node[above, near end, rotate=60]  {\small Taxes}               (Gov.120);

\path[fill=white, opacity=0.8] (-3.2,1) rectangle +(1.5,2);

\path[->, >=latex, thick]
  (Gov.20)      edge[] node[below, rotate=48]  {\small Bonds}                            (Banks.220)
[...]
  (Banks.west)  edge[out=200, in=340, looseness=5] node[below]  {\small interbank loans} (Banks.east);

在此輸入影像描述

答案2

使用該層的另一種方法background

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,positioning}
\usetikzlibrary{backgrounds}     %new code
\tikzset{
    %Define standard arrow tip
    >=stealth,
    %Define style for boxes
    punkt/.style={
           rectangle,
           rounded corners,
           draw=black, very thick,
           text width=6.5em,
           minimum height=3.5em,
           text centered}
}

\begin{document}
\begin{tikzpicture}[node distance=1cm, auto, description/.style={fill=white,inner sep=2pt}]

 %nodes
 \node[punkt]                      (Banks)  {Banks ($B_b$)};
 \node[left=4cm of Banks]          (dummy1) {};
 \node[right=4cm of Banks]         (dummy2) {};
 \node[punkt, above=4cm of dummy1] (CB)     {CB};
 \node[punkt, below=4cm of dummy1] (Gov)    {Government};
 \node[punkt, above=4cm of dummy2] (Firms)  {Firms ($F_f$)};
 \node[punkt, below=4cm of dummy2] (HH)     {HH ($HH_{hh}$)};


\path[->, >=latex, thick]
  (Gov.20)      edge[] node[below, rotate=48]  {\small Bonds}                       (Banks.220)
  (Banks.200)   edge[] node[above, rotate=48]  {\small Deposits}                    (Gov.40)
  (Firms.250)   edge[] node[above, rotate=90]  {\small wage, dividends}             (HH.110)
  (HH.70)       edge[] node[below, rotate=90]  {\small equity, consumption}         (Firms.290)
  (Gov.350)     edge[] node[below]             {\small unempl. benefit}             (HH.190)
  (HH.170)      edge[] node[above]             {\small Taxes}                       (Gov.10)
  (CB.325)      edge[] node[fill=white,below, sloped] {\small interest, OSDF}              (Banks.160)     %new code
  (Banks.143)   edge[] node[fill=white,above, sloped] {\small interest, IDL, OMO, OSLF}    (CB.345)        %new code
  (Firms.200)   edge[] node[above, rotate=48]  {\small principal/interest payments} (Banks.40)
  (Banks.20)    edge[] node[below, rotate=48]  {\small Loans, interest}             (Firms.220)
  (HH.143)      edge[] node[above, rotate=-50]  {\small equity}                     (Banks.345)
  (Banks.325)   edge[] node[below, rotate=-50]  {\small interest, dividends}        (HH.160)
  (Banks.west)  edge[out=200, in=340, looseness=5] node[below]  {\small interbank loans} (Banks.east);

\begin{scope}[on background layer]   %new code
   \path[->, >=latex, thick]  (Firms.170)   edge[bend right=35]                node[above, near end, rotate=60]  {\small Taxes}               (Gov.120);
\end{scope}
\end{tikzpicture}
\end{document}

在此輸入影像描述

作用域路徑位於主路徑後面

相關內容