
답변1
일부 의견에서 언급했듯이 먼저 여기에서 귀하의 시도를 보고 싶습니다. 그러나 이 다이어그램에는 몇 가지 흥미로운 측면이 포함되어 있으므로 최종 다이어그램을 향한 경로를 스케치하겠습니다. 그런데, 이것은 그림을 그리는 절차에 가깝습니다.
더 많은 정보를 찾을 수 있는 곳
나는 Tikz 매뉴얼의 튜토리얼 섹션을 훑어보거나 읽는 것을 제안합니다.HTML~의PDF. 또한 내가 사용하고 있는 모든 관련 Tikz 명령을 찾아보세요.
기본 아이디어
먼저 기본 아이디어를 살펴보겠습니다.
- 축을 그리다
- 아래쪽 곡선을 그려라
- 도트에 필요한 포인트를 나타냅니다.
- 아래쪽 곡선 위의 점을 연결합니다.
도끼: 그녀에게는 이상한 것이 없습니다 ... 그냥 그려보세요.
% ~~~ axes ~~~
\draw[->] (0,0) -- (5,0);
\draw[->] (0,0) -- (0,5);
이제 아래쪽 곡선은 복잡해 보이지만 Tikz의 경로 개념을 이해했을 때는 그렇지 않습니다. 기본적으로 두 점 사이에 선을 그립니다 \draw (1,3) -- (4,1);
. 곡선으로 만들려면 나가는 각도와 들어오는 각도를 --
으로 바꾸고 지정하면 됩니다. to[out=,in=]
경로는 로 시작 \draw
하고 로 끝납니다 ;
. 따라서 경로가 끝나기 전에 이 경로에 대해 좀 더 많은 작업을 수행해 보겠습니다. node
T1 라벨을 넣으려면 마지막으로 그린 좌표 뒤에 를 넣으세요 . node
시작점과 끝점 사이에 두 개의 를 더 삽입합니다 . 여기서는 좌표 (A)와 (B)만 사용하고 를 사용하여 이 경로에서 위치를 미세 조정합니다 [pos=]
. \
경로 내부에 떨어지는 것을 조심스럽게 관찰하십시오 .
% ~~~ lower curve: a path with many actions ~~~~~
\draw (1,3) to[out=-60,in=170] % start point, towards ...
node[pos=.8] (A) {A} % basically, store coordinates
node[pos=.6] (B) {B} % (A) and (B)
(4,1) node[anchor=west]{$T_1$} % end point + some node as label
; % end of this path
\node
(B) 위에 또 다른 점 (C) 가 필요하므로[yshift=]
% ~~~ put a node//coordinate above (B) ~~~
\node (C) at ([yshift=6mm]B) {C};
마지막으로 (A), (C), (B)를 다시 곡선으로 연결해 보겠습니다.
% ~~~ connect A, C and B ~~~~~~~~~
\draw (A) to[out=140,in=-70] (C) -- (B);
개선
변경 사항 및 추가 기능은 다음과 같습니다.
- 일부 스타일 정의: 선에 대해
crd
원으로 더미 노드를 렌더링합니다.ln
coordinate (X)
나중을 위해 x축을 따라 기억하세요- 노드 A, B 및 C에서 텍스트를 제거하고
crd
스타일을 사용하십시오. - 화살표와 라벨을 사용하여 그림을 그립니다.
(label)
- (B)에서 (X)를 재사용하여 좌표(V4)를 계산하고 체크 표시 를 합니다
\node
.\draw
귀하 shifted arrow
의 라인에는 여러 가지 방법이 있습니다. 나는 게으른 변형을 사용했으며 여기에 추가 옵션이 있습니다.
- 화살표 생략
- 장식 라이브러리 사용
- A와 B 사이에 중간점을 두고 필요한 경우 각도를 조정합니다.
- 등.
완전한 코드
이 코드는 조정된 페이지 형상을 사용하여 그림의 두 페이지(각 tikzpicture 환경에 대해 하나씩)를 생성합니다.
\documentclass[10pt,border=3mm,tikz]{standalone}
\begin{document}
% ~~~ (I) basic ideas ~~~~~~~~~~~~~~~
\begin{tikzpicture}
% ~~~ axes ~~~
\draw[->] (0,0) -- (5,0);
\draw[->] (0,0) -- (0,5);
% ~~~ lower curve: a path with many actions ~~~~~
\draw (1,3) to[out=-60,in=170] % start point, towards ...
node[pos=.8] (A) {A} % basically, store coordinates
node[pos=.6] (B) {B} % (A) and (B)
(4,1) node[anchor=west]{$T_1$} % end point + some node as label
; % end of this path
% ~~~ put a node//coordinate above (B) ~~~
\node (C) at ([yshift=6mm]B) {C};
% ~~~ connect A, C and B ~~~~~~~~~
\draw (A) to[out=140,in=-70] (C) -- (B);
\end{tikzpicture}
% ~~~ (II) fine print ~~~~~~~~~~~~~~~
\begin{tikzpicture}[ % some self-defined styles
crd/.style={minimum size=1mm, % puts the dots
inner sep=0pt,circle,draw,fill},
ln/.style={blue, line width=1.5pt},
]
% ~~~ axes ~~~
\draw[->] (0,0) -- (5,0) coordinate (X);
\draw[->] (0,0) -- (0,5);
% ~~~ lower curve: a path with many actions ~~~~~
\draw (1,3) to[out=-60,in=170] % start point, towards ...
node[pos=.8,crd] (A) {} % basically, store coordinates
node[pos=.6,crd] (B) {} % (A) and (B)
(4,1) node[anchor=west]{$T_1$} % end point + some node as label
; % end of this path
% ~~~ put a node//coordinate above (B) ~~~
\node[crd] (C) at ([yshift=6mm]B) {};
% ~~~ connect A, C and B ~~~~~~~~~
\draw[ln,->] (A) to[out=140,in=-70] (C);
\draw[ln] (C) -- (B);
% ~~~ put some label ~~~~~~~~~~~
\draw[<-] (C) -- +(45:15mm) node[anchor=west] {$(V_4, P_4, T_4)$};
% ~~~ perpendicular below points ~~~~~~~
\coordinate (V4) at (B |- X); % projection onto x-axis
\node[yshift=-3mm] at (V4) {$V_4$}; % the label
\draw (V4) -- +(0,.2); % the tick
\end{tikzpicture}
\end{document}