線に沿ってノードとして垂直線を描く

線に沿ってノードとして垂直線を描く

私は次のTikzpicutreを作成しました:

ここに画像の説明を入力してください

\begin{tikzpicture}
    \node (Borrow) at (-3, 9) {$b < 0$};
    \node (Lend) at (3, 9) {$b > 0$};
    \node (Top) at (0, 11) {$i^{dw}$};
    \node (Bottom) at (0, 7) {$i^m$};
    \draw[|-|] (Top) -- (Bottom) node[pos =0.6, right] (Funds) {$i^{ff}, \Lambda$}
    node[pos =0.2, right] (AverageBorrowing) {$\chi^{-}$}
    node[pos =0.8, right] (AverageLending) {$\chi^{+}$};
    \draw[->] (Borrow) -- (Top) node[pos = 0.66, above] (DW)  {$1-\varphi^{-}$};
    \draw[->] (Borrow) -- (Funds) node[pos = 0.66, above] (BFunds)  {$\varphi^{-}$};
    \draw[->] (Lend) -- (Bottom) node[pos = 0.3, below] (Overnight)  {$1-\varphi^{+}$};
     \draw[->] (Lend) -- (Funds) node[pos = 0.3, above] (LFunds)  {$\varphi^{+}$};
\end{tikzpicture}

上部 (注釈 i^dw) と下部 (注釈 i^m) の間の垂直線に沿って 3 つのノードを作成しました。画像の 2 つの要素を変更したいと思います。

  • これらのノードのテキストを右揃えにするのではなく、北東 (右上) 揃えにしたいと思います。
  • 3 つのノードのそれぞれで、上部ノードと下部ノードの間の線を横切る水平線が必要です。中央のノード (Funds) への矢印は、テキストではなく垂直線を指す必要があります。

これら 2 つの変更を実装する方法を誰か提案していただけませんか?

答え1

あなたの説明をすべて正しく理解できたかどうかわかりません。垂直線に添付されたノード テキストを右上に揃えたいのだと思います。これは を使用して行うことができますanchor=south west。ただし、矢印と垂直線を添付するには、線上の配置を使用する必要があるため、できるだけ小さなノードを使用して、その外側にテキストを設定する方が簡単だと思いますlabel。次に、次のようになります。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
    \node (Borrow) at (-3, 9) {$b < 0$};
    \node (Lend) at (3, 9) {$b > 0$};
    \node (Top) at (0, 11) {$i^{dw}$};
    \node (Bottom) at (0, 7) {$i^m$};
    \draw[|-|] (Top) -- (Bottom) node[pos =0.6,label=45:{$i^{ff},\Lambda$},inner sep=0pt] (Funds) {}
    node[pos =0.2,inner sep=0pt,label=45:{$\chi^{-}$}] (AverageBorrowing) {}
    node[pos =0.8,inner sep=0pt,label=45:{$\chi^{+}$}] (AverageLending) {};
    \draw[->] (Borrow) -- (Top) node[pos = 0.66, above] (DW)  {$1-\varphi^{-}$};
    \draw[->] (Borrow) -- (Funds.center) node[pos = 0.66, above] (BFunds)  {$\varphi^{-}$};
    \draw[->] (Lend) -- (Bottom) node[pos = 0.3, below] (Overnight)  {$1-\varphi^{+}$};
    \draw[->] (Lend) -- (Funds.center) node[pos = 0.3, above] (LFunds)  {$\varphi^{+}$};
    %%
    \draw[dashed, red] ([xshift=-1cm]AverageBorrowing.center) -- +(2cm,0cm);
    \draw[dashed, red] ([xshift=-1cm]Funds.center) -- +(2cm,0cm);
    \draw[dashed, red] ([xshift=-1cm]AverageLending.center) -- +(2cm,0cm);
\end{tikzpicture}
\end{document}

ここに画像の説明を入力してください

関連情報