Нарисуйте вертикальные линии как узлы вдоль линии.

Нарисуйте вертикальные линии как узлы вдоль линии.

Я создал следующий 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). Я хотел бы изменить два элемента рисунка:

  • Вместо того, чтобы выравнивать текст для этих узлов по правому краю, я бы хотел выровнять его по северо-востоку (вверху справа).
  • Должна быть горизонтальная линия, пересекающая линию между верхним и нижним узлами в каждом из трех узлов. Стрелки к среднему узлу (Funds) должны указывать на вертикальную линию вместо текста.

Может ли кто-нибудь подсказать, как реализовать эти два изменения?

решение1

Я не уверен, что правильно понял все ваши описания. Я думаю, вы хотите, чтобы текст узла, прикрепленный к вертикальной линии, был выровнен по верхнему правому краю. Это можно сделать с помощью anchor=south west. Но тогда вы хотите использовать позиционирование на линии, чтобы прикрепить стрелки и вертикальную линию, поэтому я думаю, что проще использовать как можно меньший узел и использовать labelti для размещения текста за его пределами. Затем я заканчиваю чем-то вроде этого.

\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}

введите описание изображения здесь

Связанный контент