
Respuesta1
Como indicaron algunos comentarios, primero nos gustaría ver sus propios intentos aquí. Sin embargo, debido a que este diagrama involucra algunos aspectos interesantes, esbozaré un camino hacia su diagrama final. Por cierto, este es más o menos el procedimiento para crear dibujos.
Dónde encontrar más
Sugiero hojear o leer las secciones del tutorial en el manual de Tikz, ya sea comoHTMLdepdf. Busque también todos los comandos Tikz relevantes que estoy usando.
Idea básica
Primero echemos un vistazo a la idea básica:
- dibujar los ejes
- dibuja la curva inferior
- indique los puntos necesarios para sus puntos
- conectar puntos por encima de la curva inferior
Hachas: nada extraño para ella... solo dibújalas.
% ~~~ axes ~~~
\draw[->] (0,0) -- (5,0);
\draw[->] (0,0) -- (0,5);
Ahora, la curva inferior parece complicada, mientras que no lo es cuando entendiste el concepto de camino de Tikz. Básicamente dibujas una línea entre dos puntos \draw (1,3) -- (4,1);
. Para hacerlo curvo, como una forma de hacerlo, simplemente reemplace --
y to[out=,in=]
especifique los ángulos salientes y entrantes. El camino comienza con \draw
y termina con ;
. Así que hagamos un poco más de acciones en este camino antes de que termine. Ponga un node
después de la última coordenada dibujada para poner la etiqueta T1. Inserte dos node
s más entre el punto inicial y final, donde solo usaremos sus coordenadas (A) y (B) y ajustaremos su posición en esta ruta usando [pos=]
. Tenga cuidado con las caídas \
dentro del camino.
% ~~~ 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
Necesitamos otro punto (C) encima de (B), así que pongamos otro \node
, usando un[yshift=]
% ~~~ put a node//coordinate above (B) ~~~
\node (C) at ([yshift=6mm]B) {C};
Finalmente, conectemos (A), (C) y (B), nuevamente con alguna línea curva:
% ~~~ connect A, C and B ~~~~~~~~~
\draw (A) to[out=140,in=-70] (C) -- (B);
Refinamientos
Estos son los cambios y añadidos:
- definir algunos estilos:
crd
para representar los nodos ficticios con círculos,ln
para la línea - recuerda
coordinate (X)
a lo largo del eje x para más tarde - eliminar texto de los nodos A, B y C Y usar el
crd
estilo - dibuja con flecha y etiqueta para el
(label)
- calcular la coordenada (V4) en (B) reutilizar (X), poner
\node
una\draw
marca
Para el shifted arrow
de tu línea hay varias formas de hacerlo. Utilicé la variante diferida y aquí hay más opciones:
- omitiendo la flecha
- usando la biblioteca de decoraciones
- coloque un punto intermedio entre A y B (y ajuste los ángulos, si es necesario)
- etc.
código completo
Este código creará dos páginas (una para cada entorno de tikzpicture) de dibujos con geometría de página ajustada.
\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}