이와 같은 데카르트 평면을 그리는 방법은 무엇입니까?

이와 같은 데카르트 평면을 그리는 방법은 무엇입니까?

포럼에서 몇 가지 주제를 읽었지만 여전히 이와 같은 다이어그램을 그리는 방법을 모릅니다.

여기에 이미지 설명을 입력하세요

그냥 이미지만 넣어도 되는 건 알지만 직접 그리는 게 더 좋을 것 같고 변수도 바꿔야 합니다(S는 T로, X는 J로, J는 X로 바꿔야 합니다)

이것이 내가 지금까지 달성한 ​​것입니다.

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.5}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines=middle, axis equal, title=test, xlabel={Time}, ylabel=.{States}]
\addplot table {
x y
1.7 4.3
0 4.3

1.7 4
2.3 4

2.3 5.2
3.1 5.2

3.1 4.5
3.8 4.5

3.8 3.8
4.7 3.8

4.7 5.5
5.8 5.5
};
\end{axis}
\end{tikzpicture}
\end{document}

함수의 점프 포인트와 관련되고 이름을 "T_0, T_1, ... T_n"으로 지정하려면 "x"축에 체크가 필요합니다(점프 길이는 무작위이므로 다음과 같아야 합니다). ). 게다가 함수에서 오른쪽 점을 제거하고 왼쪽 점만 남기는 방법을 아는 사람이 있나요?

추신: 물론 이 이미지를 사용하기 위해 참고문헌에 참조를 추가하겠습니다.

모두에게 큰 포옹을!

답변1

이것은 아마도 가장 유연한 솔루션은 아니지만 제 생각에는 상당히 간단합니다. (나중에 다른 사람들로부터 더 나은 솔루션을 얻을 수도 있습니다.) 또한 를 사용하지 않고 pgfplots일반 TikZ만 사용합니다.

여기에 이미지 설명을 입력하세요

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[
   axis/.style={thick,Latex-Latex},
   xbar/.style={-Circle}
]

\draw [axis] (0,4) node[above] {States} |- (7,0) node[below] {time};

\foreach \y/\txt in {1/J_n=k,2/J_0=i,2.5/J_1=j}
  \node [left=3mm] at (0,\y) {$\{\txt\}$};

\foreach [count=\i] \x/\txt in {0/0,1/1,1.8/2,3.2/n,5/n+1}
{
   \node [below=3mm] (S\i) at (\x,0) {$S_{\txt}$};
   \draw (\x,0) -- ++(0,{ifthenelse(\x>0,-3pt,0)});
}

\foreach \xA/\xB/\y in {0/1/2,1/1.8/2.5,3.2/5/1}
  \draw [xbar] (\xA,\y) -- (\xB,\y);

\path (S3) -- node (dots1) {$\dots$} (S4);
\node [right=2mm] (dots2) at (S5.east) {$\dots$}; 
\node at (0,1.5 -| dots1) {$\dots$};
\node at (0,1 -| dots2) {$\dots$};

\node [below left] at (7,4) {
\begin{tabular}{c @{ : }l}
$(X_n)$ & sojourn time \\
$(J_n)$ & states of the system \\
$(S_n)$ & jump time
\end{tabular}};

\end{tikzpicture}
\end{document}

관련 정보