
Antwort1
Wie in einigen Kommentaren erwähnt, möchten wir hier zunächst Ihre eigenen Versuche sehen. Da dieses Diagramm jedoch einige interessante Aspekte enthält, werde ich einen Weg zu Ihrem endgültigen Diagramm skizzieren. Dies ist übrigens mehr oder weniger das Verfahren zum Erstellen von Zeichnungen.
Weitere Informationen
Ich schlage vor, die Tutorial-Abschnitte im Tikz-Handbuch zu überfliegen oder zu lesen, entweder alshtmlvonpdf. Schauen Sie sich auch alle relevanten Tikz-Befehle an, die ich verwende.
Die Grundidee
Schauen wir uns zunächst die Grundidee an:
- Zeichnen Sie die Achsen
- Zeichnen Sie die untere Kurve
- Geben Sie die für Ihre Punktierung benötigten Punkte an
- Punkte oberhalb der unteren Kurve verbinden
Äxte: nichts Ungewöhnliches hier ... zeichne sie einfach.
% ~~~ axes ~~~
\draw[->] (0,0) -- (5,0);
\draw[->] (0,0) -- (0,5);
Nun scheint die untere Kurve kompliziert zu sein, obwohl sie es nicht ist, wenn Sie das Pfadkonzept von Tikz verstanden haben. Grundsätzlich zeichnen Sie eine Linie zwischen zwei Punkten \draw (1,3) -- (4,1);
. Um sie gekrümmt zu machen, können Sie beispielsweise einfach --
durch ersetzen to[out=,in=]
und den ausgehenden und eingehenden Winkel angeben. Der Pfad beginnt mit \draw
und endet mit ;
. Lassen Sie uns also noch ein paar Aktionen auf diesem Pfad ausführen, bevor er endet. Setzen Sie node
nach der letzten gezeichneten Koordinate ein , um die Beschriftung T1 anzubringen. Fügen Sie node
zwischen Start- und Endpunkt zwei weitere s ein, wobei wir nur ihre Koordinaten (A) und (B) verwenden und ihre Position auf diesem Pfad mithilfe von feinabstimmen [pos=]
. Achten Sie bitte auf das Drop \
innerhalb des Pfads.
% ~~~ 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
Wir brauchen einen weiteren Punkt (C) über (B), also setzen wir einen weiteren \node
, mit einem[yshift=]
% ~~~ put a node//coordinate above (B) ~~~
\node (C) at ([yshift=6mm]B) {C};
Zum Schluss verbinden wir (A), (C) und (B) wieder mit einer gekrümmten Linie:
% ~~~ connect A, C and B ~~~~~~~~~
\draw (A) to[out=140,in=-70] (C) -- (B);
Verfeinerungen
Dies sind die Änderungen und Ergänzungen:
- Definieren Sie einige Stile:
crd
um die Dummy-Knoten mit Kreisen darzustellen,ln
für die Linie - Merken Sie sich
coordinate (X)
entlang der x-Achse für später - Entfernen Sie Text aus den Knoten A, B und C UND verwenden Sie den
crd
Stil - Zeichnen mit Pfeil und Beschriftung für die
(label)
- Berechnen Sie die Koordinate (V4) unter (B) und verwenden Sie (X), setzen Sie ein
\node
,\draw
ein Häkchen
Für die shifted arrow
in Ihrer Zeile gibt es mehrere Möglichkeiten. Ich habe die Lazy-Variante verwendet, und hier sind weitere Optionen:
- den Pfeil weglassen
- Verwenden der Dekorationsbibliothek
- Setzen Sie einen Zwischenpunkt zwischen A und B (und passen Sie die Winkel bei Bedarf an)
- usw.
Vollständiger Code
Dieser Code erstellt zwei Seiten (eine für jede TikzPicture-Umgebung) mit Zeichnungen mit angepasster Seitengeometrie.
\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}