4

I would like to draw a figure like this using TikZ:

enter image description here

I am pretty new to TikZ and therefore would be very thankful if someone can give me a good looking proposal for the picture above, since I am absolutely lost doing this alone right now.

I want to create some more pictures like the one above and as they all look pretty similar I guess having a proper first example will really help me doing the other ones alone.

  • 1
    I would suggest the tikzcd package, which has good documentation and handles commutative diagrams, allowing the arrows to arc. – Benjamin McKay Jun 20 at 9:33
  • What figure are you talking about? I don't see anything at all.... – AndréC Aug 12 at 15:37
  • Why you remove your image? Now question become unclear. – Zarko Aug 12 at 16:10
  • It was handwritten and I didn't want it to be online anymore. I can upload it again. Since the question was really specifiic, I didn't think there are that many people interested. However, Zarko's answer shows exactly what was shown in the picture. – offline Aug 13 at 18:48
  • I will upload something as soon as possible. – offline Aug 14 at 6:31
7

enter image description here

I left you to write the correct nodes contents and arrows labels:

\documentclass[margin=3.1415926mm]{standalone}
\usepackage{tikz-cd}

\begin{document}
\begin{tikzcd}[bend angle = 15]
    & A \ar[rr,bend left,"f"]
        &   & B \ar[rd,bend left, dashed,"f"]
                &       \\
C \ar[ru,bend left,"f"]
    &   &   &   &  D \ar[ld,bend left, dashed,"f"]
                        \\
    & E \ar[lu,bend left,"f"]
        &   & F \ar[ll,bend left,"f"]
                &       \\
\end{tikzcd}
\end{document}

addendum: I would not use bullets in your diagram. However, if you persist to have them, than a rude solution with tikz-cd package can be:

\documentclass[margin=3.1415926]{standalone}
\usepackage{tikz-cd}
\newcommand\Dot[1]{\bullet\atop #1}

    \begin{document}
\begin{tikzcd}[bend angle = 15,
               center yshift=2ex
                ]
& \Dot{f(x_0)} \ar[rr,bend left,"f"]
    &   & \Dot{B} \ar[rd,bend left, dashed,"f"]
                &       \\
\Dot{C} \ar[ru,bend left,"f"]
    &   &   &   &  \Dot{D} \ar[ld,bend left, dashed,"f"]
                        \\
    & \Dot{E} \ar[lu,bend left,"f"]
        &   & \Dot{F} \ar[ll,bend left,"f"]
                &       \\
\end{tikzcd}
\end{document}

which gives:

enter image description here

Nicer result can be obtained by use of the pure TikZ:

\documentclass[tikz, margin=3.1415926mm]{standalone}
\usetikzlibrary{arrows.meta,
                positioning,
                quotes}

    \begin{document}
    \begin{tikzpicture}[
node distance = 10mm and 16mm,
   dot/.style = {circle, fill, inner sep=1pt, outer sep=1pt,
                 label={[font=\footnotesize]#1}, node contents={}},
   every edge/.style = {draw, -Stealth, bend left = 15},
every edge quotes/.style = {font=\footnotesize, inner sep=1pt, auto}
                ]
\node (n0) [dot=left:{$x_0=f^n(x_0)$}];
\node (n1) [dot=above:$f(x_0)$,above right=of n0];
\node (n2) [dot=above:$f^2(x_0)$,right=of n1];
\node (n3) [dot=right:$f^k(x_0)$,below right=of n2];
\node (n4) [dot=below:$f^2(x_0)$,below  left=of n3];
\node (n5) [dot=below:$f(x_0)$, left=of n4];
%
\draw   (n0) edge ["$f$"]   (n1)
    (n1) edge ["$f$"]   (n2)
    (n2) edge ["$f$", densely dashed]   (n3)
    (n3) edge ["$f$", densely dashed]   (n4)
    (n4) edge ["$f$"]   (n5)
    (n5) edge ["$f$"]   (n0);
\end{tikzpicture}
\end{document}

enter image description here

  • First of all a massive thank you! There is still one little question for now: How do I change the letters, for example "A", into a simple little black point? – offline Jun 20 at 11:28
  • 1
    @offline, instead A write your desired text. For example with \bullet. – Zarko Jun 20 at 12:17
  • \bullet worked fine. How do I get some text below the bullet (like in my picture)? I tried \underset which did not work. – offline Jun 20 at 12:31
  • 2
    +1. The value 3.1415692mm is strange. Why not 3.1415926mm? ;-) – Paul Gaborit Jun 20 at 16:56
  • oh, it seems that i forgot correct sequence of decimals :-( it should be sufficient just 3mm :-), however for learn process, i correct \pi decimals ... – Zarko Jun 20 at 16:59
2

This gives a pure TikZ solution, a bit longer but less "vocabulary" in comparison with Zarko's answer, so TikZ beginners may find it easier.

enter image description here

\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}[>=stealth,
n/.style={circle,fill=magenta,inner sep=1.5pt,outer sep=1.5pt},
legend/.style={midway,blue,scale=.8}]
\def\a{1.2}
\def\b{1.5}
\path
(-3*\a,0) node[n] (L) {} node[left] {$f^n(x_0)=x_0$}
(-\a,\b)  node[n] (A) {} node[above]{$f(x_0)$}
(\a,\b)   node[n] (B) {} node[above]{$f^2(x_0)$}
(3*\a,0)  node[n] (R) {} node[right]{$f^k(x_0)$}
(\a,-\b)  node[n] (C) {} node[below]{$f^{k+1}(x_0)$}
(-\a,-\b) node[n] (D) {} node[below]{$f^{n-1}(x_0)$};

\draw[->] (L) to[bend left=15] node[legend,below]{$f$} (A);
\draw[->] (A) to[bend left=8]  node[legend,below]{$f$} (B);
\draw[->] (C) to[bend left=8]  node[legend,above]{$f$} (D);
\draw[->] (D) to[bend left=15] node[legend,above]{$f$} (L);
\draw[->,densely dashed] (B) to[bend left=15] node[legend,below]{$f$} (R);
\draw[->,densely dashed] (R) to[bend left=15] node[legend,above]{$f$} (C);
\end{tikzpicture}
\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.