tikz を使用したタイムライン図の改善

tikz を使用したタイムライン図の改善

下の手描きの図にできるだけ近い図を描きたいです。

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

私は次のことを試みました:

\documentclass[a4paper, 12 pt]{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage{enumitem}

    \begin{document}
          \begin{figure}
        \setlist[itemize]{nosep, leftmargin=*}
        \begin{tikzpicture}[
            node distance = 0mm and 0.02\linewidth,
            box/.style = {inner xsep=0pt, outer sep=0pt,
                text width=0.32\linewidth,
                align=left, font=\small}
            ]
            \node (n1) [box]
            {   \begin{itemize}
                    \item   Households can produce or consume $x$ with equal probability
                    \item Young entrepreneurs borrow bank deposits to buy $x$ for investment
                    \item Young bankers issue deposits and loans
                \end{itemize}
            };
            \node (n2) [box, below right=of n1.north east]
            {   \begin{itemize}
                    \item  $\frac{1}{4}$ probability of type $l$ consumers
                    \item  $\frac{1}{4}$ probability of type $h$ consumers
                    \item  $\frac{1}{2}$ probability of producers
                \end{itemize}
            };
            \node (n3) [box, below right=of n2.north east]
            {   \begin{itemize}
                    \item   Old entrepreneurs get output, repay loans, consume $x$ and die
                    \item   Old bankers receive loan repayments, consume $x$ and die
                \end{itemize}
            };
            \draw[thick, -latex]    (n1.north west) -- (n3.north east);
            \draw (n1.north) -- + (0,3mm) node[above] {Day};
            \draw (n2.north) -- + (0,3mm) node[above] {Night};
            \draw (n3.north) -- + (0,3mm) node[above] {Day};
        \end{tikzpicture}
      \end{figure}
    \end{document}

上記のコードは次の図を生成します: ここに画像の説明を入力してください

これは私が望んでいるものとは違います。$t$ と $t+1$ を含め、目盛りを線に切り込み、線の中央に表示したいのですが、意味が通じますか? また、手描きの図のように、線の上にテキストの一部を配置したほうが良いでしょう。

答え1

ここでは、リスト内の各要素に、、の 4 つの値をすべてまたはまったく\tikztimeline設定できないエントリのリストが想定される、PGFKeys を利用したアプローチを示します。topabovebelowbottom

\tikztimelinesetを使用してグローバル スケールでデフォルト値を調整するか、オプションの引数を使用して\tikztimeline1 つのダイアグラムに対してのみ値を設定できます。

長さsegment widthtick length調節可能です。

segment width× エントリがページに対して長くなりすぎないようにします。

コード

\documentclass[a4paper, 12pt]{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\newcommand*\tikztimelineset{\pgfqkeys{/tikz/timeline}}
\tikztimelineset{
  segment width/.initial=4cm, tick length/.initial=6pt,
  topbot/.style={
    align=flush left,
    text width=\pgfkeysvalueof{/tikz/timeline/segment width}
           -2*(\pgfkeysvalueof{/pgf/inner xsep})},
  top/.initial=, above/.initial=, below/.initial=, bottom/.initial=}
\newcommand*\tikztimeline[2][]{
\begin{tikzpicture}[timeline/every timeline/.try,timeline/.cd,#1]
\foreach[count=\CNT] \elem in {#2}{
  \tikztimelineset{/tikz/style/.expand once=\elem}
  \tikzset{xshift=\CNT*(\pgfkeysvalueof{/tikz/timeline/segment width})}
  \unless\ifnum\CNT=1\relax
  \draw (down:\pgfkeysvalueof{/tikz/timeline/tick length}) -- coordinate (lasttick)
        (  up:\pgfkeysvalueof{/tikz/timeline/tick length});
  \fi
  \node[above] (@above) at (right:{.5*(\pgfkeysvalueof{/tikz/timeline/segment width})})
    {\strut$\pgfkeysvalueof{/tikz/timeline/above}$};
  \node[above, timeline/topbot] at (@above.north) {\pgfkeysvalueof{/tikz/timeline/top}};
  \node[below] (@below) at (@above.south) {\strut\pgfkeysvalueof{/tikz/timeline/below}};
  \node[below, timeline/topbot] at (@below.south) {\pgfkeysvalueof{/tikz/timeline/bottom}};
}
\draw[->] (right:\pgfkeysvalueof{/tikz/timeline/segment width})
      -- ([xshift=\pgfkeysvalueof{/tikz/timeline/segment width}] lasttick);
\end{tikzpicture}}

\tikztimelineset{every timeline/.append style={>=Latex}}

\begin{document}
\tikztimeline{
  {
    top=Households can produce or consume $x$ with equal probabilit.,
    above=t,
    below=Day,
    bottom=Young entrepreneurs borrow bank deposits to buy $x$ for investment.\\
           Young bankers issue deposits and loans.
  }, {
    top=$\frac{1}{4}$ probability of type $l$ consumers.
        $\frac{1}{4}$ probability of type $h$ consumers.
        $\frac{1}{2}$ probability of producers.,
    below=Night
  }, {
    above=t+1,
    below=Day,
    bottom={Old entrepreneurs get output, repay loans, consume $x$ and die.\\
            Old bankers receive loan repayments, consume $x$ and die.}
  }}
\end{document}

出力

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

関連情報