3

Here is what the diagram looks like and my notes about the desired changes in redI have this circular smartdiagram. I am asking for help to center one of the modules at the top and have the remaining three at each side. Here's what I have:

\documentclass[border=10pt]{standalone}
\usepackage{smartdiagram}
\usesmartdiagramlibrary{additions} 
\begin{document}

\RenewDocumentCommand{\smartdiagramconnect}{m m}{%
  \begin{tikzpicture}[remember picture,overlay]
  \foreach \start/\end in {#2}
  \draw[additional item arrow type,#1]
  (\start) to (\end);
  \end{tikzpicture}
}
    \centering
\smartdiagramset{uniform color list=teal!60 for 7 items,
                    back arrow distance=0.75,
                    sequence item border color=black,
                    uniform arrow color=true,
                    arrow color=gray!50!black,
                    circular distance=6cm,
                    font=\normalsize,
                    text width=3.5cm,
                    module minimum width=3.5cm,
                    module minimum height=2.0cm,
                    arrow line width=2.5pt,
                    arrow tip=to,
                 additions={
                additional arrow style=dashed,
                additional arrow color=black,   
                additional arrow line width=2pt,
                          }
                    } 
\smartdiagramadd[circular diagram:clockwise]{
     Step 1: Define the Construct,Step 2: Determine Facets and Generate Narrative \mbox{Descriptions} for Each Facet,Step 3: Determine the Facet Levels and Generate Descriptions to Capture Variation within Each Facet, Step 4: \mbox{Determine} the Structure of the Scenarios,Step 5: \mbox{Developing} the Mapping \mbox{Sentences} and \mbox{Constructing} the Scenarios,Step 6: Decide on the Response Options and Survey Instructions, Step 7: Testing Congruence of \mbox{Theory} and Practice
    }
    {}
    \smartdiagramconnect{->, shorten <=8pt, shorten >=8pt, bend left=30,}{module2/module1}
      \smartdiagramconnect{->, shorten <=8pt, shorten >=8pt, bend left=30,}{module7/module6, module6/module5, module5/module4}

\end{document}

I tried changing the text order but even if I put Step 1 text on the box of Step 2 it isn't centered at 12 o'clock

9
  • 2
    Hi and welcome. Your code is not compilable.
    – AndréC
    Commented Aug 10, 2020 at 19:18
  • Hi, I was able to compile the edit above.
    – mariabc
    Commented Aug 10, 2020 at 20:47
  • With which engine? pdfLaTex? LaTeX? another one?
    – AndréC
    Commented Aug 10, 2020 at 20:49
  • I compiled in overleaf
    – mariabc
    Commented Aug 10, 2020 at 22:25
  • @mariabc were you able to accept the answer to your previous question regarding smartdiagram
    – js bibra
    Commented Aug 11, 2020 at 0:28

3 Answers 3

3

The positioning of the modules is hard-coded in the smartdiagram package, if your request is imperative, you must ask its maintainer to add this possibility to its package. You will find his email address in the manual.

Here is a version coded with the TikZ chain library. It is parameterized and allows you to display any regular polygons as for example with as many sides as you want. You can also choose where to position module 1 and the inner radius of the polygon.

p.s: Personally, I am not convinced that placing the module 1 to 12 hours is more aesthetic than what is natively done by the smartdiagram package.

Update: add internal dashed arrows

In this example, I called the whole polygon chain (polygon). The first node is called (polygon-1); the second node is called (polygon-2), and so on. This corresponds to the modules of smartdiagram. To draw arrows, we use the classic TikZ code. And since it is a node (i.e. a box full of text), we can tell where the arrows should start and end by using the syntax (polygon-1.east) or (polygon-1.90). This is called an anchor.

The curvature of the arrows is determined by the parameter bend left=40, I put different curvatures (bend left=30 and bend left=10) so that you can see this curvature.

I quote the manual where the node is called (s), then you see (s.10); (s.east), etc.

Shape rectangle This shape, which is the standard, is a rectangle around the text. The inner and outer separations (see Section 17.2.3) influence the white space around the > text. The following figure shows the anchors this shape defines; the anchors 10 > and 130 are example of border anchors.

screenshot

Translated with www.DeepL.com/Translator (free version)

screenshot

\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary {chains}
%\usetikzlibrary{arrows.meta}

\begin{document}

\def\nbcote{7}% number of side
\def\startmodule{90}% position of module 1
\def\rayon{6.5cm}%<- radius of polygon
\definecolor{teal}{RGB}{0,128,128}

\tikzset{every node/.style={on chain,text width=3.5cm,draw,rounded corners,minimum width=3.5cm,minimum height=2.8cm,top color=white,bottom color=teal!60
}}

\begin{tikzpicture}[start chain= polygon placed {at=({\startmodule+(\tikzchaincount-1)*(-360/\nbcote)}:\rayon)}]
\foreach \texte [count=\i from 1]in 
  {Step 1: Define the Construct,Step 2: Determine Facets and Generate Narrative \mbox{Descriptions} for Each Facet,Step 3: Determine the Facet Levels and Generate Descriptions to Capture Variation within Each Facet, Step 4: \mbox{Determine} the Structure of the Scenarios,Step 5: \mbox{Developing} the Mapping \mbox{Sentences} and \mbox{Constructing} the Scenarios,Step 6: Decide on the Response Options and Survey Instructions, Step 7: Testing Congruence of \mbox{Theory} and Practice}
    {\node [] {\texte};
    }

%\draw (0,0) circle (\rayon);% <- circle inscribed in the polygon

\foreach \i [evaluate={
            \next=int(1+mod({\i},\nbcote));}] 
        in {1,...,\nbcote}{
\draw[->,line width=2pt] (polygon-\i)to[bend left=10](polygon-\next);
}
\draw [->,line width=2pt,dashed] (polygon-7) to [bend left=10] (polygon-6);
\draw [->,line width=2pt,dashed] (polygon-6.east) to [bend left=30] (polygon-5.60);
\draw [->,line width=2pt,dashed] (polygon-5.40) to [bend left=40] (polygon-4.130);
\end{tikzpicture}
\end{document}

First answer:

screenshot

\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary {chains}
%\usetikzlibrary{arrows.meta}

\begin{document}

\def\nbcote{7}% number of side
\def\startmodule{90}% position of module 1
\def\rayon{6.5cm}%<- radius of polygon
\definecolor{teal}{RGB}{0,128,128}

\tikzset{every node/.style={on chain,text width=3.5cm,draw,rounded corners,minimum width=3.5cm,minimum height=2.8cm,top color=white,bottom color=teal!60
}}

\begin{tikzpicture}[start chain= polygon placed {at=({\startmodule+(\tikzchaincount-1)*(-360/\nbcote)}:\rayon)}]
\foreach \texte [count=\i from 1]in 
  {Step 1: Define the Construct,Step 2: Determine Facets and Generate Narrative \mbox{Descriptions} for Each Facet,Step 3: Determine the Facet Levels and Generate Descriptions to Capture Variation within Each Facet, Step 4: \mbox{Determine} the Structure of the Scenarios,Step 5: \mbox{Developing} the Mapping \mbox{Sentences} and \mbox{Constructing} the Scenarios,Step 6: Decide on the Response Options and Survey Instructions, Step 7: Testing Congruence of \mbox{Theory} and Practice}
    {\node [] {\texte};
    }

%\draw (0,0) circle (\rayon);% <- circle inscribed in the polygon

\foreach \i [evaluate={
            \next=int(1+mod({\i},\nbcote));}] 
        in {1,...,\nbcote}{
\draw[->,line width=2pt] (polygon-\i)to[bend left=10](polygon-\next);
}

\end{tikzpicture}
\end{document}
4
  • How do I add the internal dashed lines with tikz?
    – mariabc
    Commented Aug 13, 2020 at 14:05
  • 1
    Here it is, I added explanations. Is it clear now?
    – AndréC
    Commented Aug 13, 2020 at 15:28
  • how would I center the text in the nodes? Commented Oct 1, 2021 at 10:46
  • @FrederickNord like this {\node [align=center] {\texte};}
    – AndréC
    Commented Oct 1, 2021 at 19:09
1

The wheelchart package, which I wrote, can be used.

The nodes are defined in the key slices. The macro \WCcount gives the current number of the slice.

enter image description here

\documentclass[border=6pt]{standalone}
\usepackage{wheelchart}
\begin{document}
\begin{tikzpicture}
\wheelchart[
  data=,
  radius={5}{5},
  slices={;\node[
    bottom color=teal!60,
    top color=teal!10,
    rounded corners,
    draw=gray,
    align=center,
    minimum width=3.5cm,
    minimum height=2.0cm
  ] (WCslice\WCcount) {Step \WCcount: \WCvarA};},
  slices style={},
  start half,
  value=1
]{%
  Define\\the Construct,
  Determine\\Facets and Generate\\Narrative Descriptions\\for Each Facet,
  Determine\\the Facet Levels and\\Generate Descriptions\\to Capture Variation\\within Each Facet,
  Determine\\the Structure of\\the Scenarios,
  Developing\\the Mapping\\Sentences and\\Constructing\\the Scenarios,
  Decide on the\\Response Options and\\Survey Instructions,
  Testing\\Congruence of\\Theory and Practice%
}
\foreach\n in {1,...,7}{
  \pgfmathsetmacro{\k}{int(Mod(\n,7)+1)}
  \draw[->,line width=2pt] (WCslice\n) to[bend left=10] (WCslice\k);
}
\foreach\n in {2,5,6,7}{
  \pgfmathsetmacro{\k}{int(Mod(\n-2,7)+1)}
  \draw[->,line width=2pt,dashed] (WCslice\n) to[bend left=10] (WCslice\k);
}
\end{tikzpicture}
\end{document}
0

AS per your requirement the final arrow is disabled with the line

circular final arrow disabled=true,

enter image description here

\documentclass[12pt]{article} 
\usepackage{smartdiagram}
\usesmartdiagramlibrary{additions} % library to create annotations 
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{arrows,quotes,calc,decorations.text,positioning} 

\begin{document} 
\smartdiagramset{
               uniform color list=orange!60!yellow for 5 items,
               circular final arrow disabled=true,
               circular distance=2.25cm,
               arrow tip=to,
               arrow line width=2pt,
additions={
            additional item bottom color=orange!60!yellow,
            additional item border color=gray,
            additional item shadow=drop shadow,
            additional item offset=1cm,
            additional arrow line width=2pt,
            additional arrow tip=to,
            additional arrow color=orange!60!yellow,
            }
}
\smartdiagramadd[circular diagram:clockwise]{
                                             aa,bb,cc,dd,ee
                                            }{above of module1/ADD}
\smartdiagramconnect{to-}{module1/additional-module1}
\end{document}
2
  • I used your code but when I add two modules to it (i need 7 in total) the figure gets messed up. Also, I don't need that extra module at the top. Please see my revised question text.
    – mariabc
    Commented Aug 12, 2020 at 15:13
  • as I said in my previous answer plain tikz is more flexible in this regard with the same amount of coding
    – js bibra
    Commented Aug 12, 2020 at 15:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .