6

I'd like to create a poster with multiple Mindmaps. Each mindmap would be a lecture of the course, so 8 independent mindmaps i'd like eventually to position in a poster like the one below.

MinmapPoster

I am not satisfied with the organization I had so far and thanks to @Schrodingers cat Mindmap, growcyclic from? I managed to have more flexibility to rotate more circular and harmonious mindmaps. enter image description here

I put every single Mindmap in a scope. However as you can see in my simplified MWE below, the scope is not shifting the mindmap as a block (keeping its circular disposition in the block) but shifting the central node only.

My question seems related to Why does scaling a tikz picture cause everything within the scope of transform canvas to disappear? but from then :/

enter image description here

    \documentclass[tikz,border=9]{standalone}
\usetikzlibrary{mindmap,decorations}
\usepackage{xspace}

\makeatletter
\newcount\tikzcountgrandchild
\def\tikz@grow@concentric{%
  \pgftransformreset% 
  \pgftransformrotate{\pgfkeysvalueof{/tikz/overall rotation}+(\pgfkeysvalueof{/tikz/sibling angle})*(\tikzcountgrandchild)}%
  \ifnum\tikztreelevel=1
    \pgftransformrotate{(\pgfkeysvalueof{/tikz/sibling angle})*(\pgfkeysvalueof{/tikz/noc}-1)/2}%
  \fi
  \pgftransformxshift{\the\tikzleveldistance}%
  \ifnum\tikztreelevel=2
    \global\advance\tikzcountgrandchild by1
 \fi
}

\begin{document}
\tikzset{overall rotation/.initial=0,
    noc/.initial=0,
    branch color/.style={
        concept color=#1!white,
        every child/.append style={concept color=#1!white!30!white},
    }
}

\begin{tikzpicture}
    \begin{scope}[text width=1.5cm,align=flush center,
            mindmap,growth function=\tikz@grow@concentric,
            overall rotation=-45,
            sibling angle=360/30,
            nodes={concept},
            concept color=green!70!black,
            root concept/.append style={ ball color=green!50, line width=1.5ex,text=green!40!black,font=\huge\bfseries\scshape,minimum size=4.5cm,text width=4.5cm,},                   
            level 1/.style={,level distance=8cm,font=\Large,minimum size=3.0cm,text width=2.5cm,},
            level 2/.style={level distance=12cm,font=\large,minimum size=2.0cm,text width=2.0cm}
        ]
        \node [root concept]{Clients} 
        child[noc=3,branch color=green!70]{node {Retail} 
            child[] {node {CGPI}} 
            child[] {node {Banques priv\'ees}} 
            child[] {node {Retail banking}} 
        }
        child[noc=3,branch color=green!70]{node {ALM} 
            child[] {node {Mutuelles}} 
            child[] {node {Assurances}} 
            child[] {node {Caisse de retraite}}         
        } 
        child[noc=1,branch color=green!80]{node {Directions financi\'eres} 
            child[] {node {Corporate}} 
        } 
        child[noc=3,branch color=green!70]{node {Instrument specialists} 
            child {node {Asset Managers traditionnels}} 
            child {node {Hedge funds}} 
            child {node {Trading desks form other banks}} 
        } 
        ;
    \end{scope}

    \begin{scope}[xshift=-5cm,text width=1.5cm,align=flush center,
            mindmap,growth function=\tikz@grow@concentric,
            overall rotation=45,
            sibling angle=360/30,
            nodes={concept},
            concept color=yellow!70!black,
            root concept/.append style={ ball color=yellow!50, line width=1.5ex,text=yellow!40!black,font=\huge\bfseries\scshape,minimum size=4.5cm,text width=4.5cm,},                   
            level 1/.style={,level distance=8cm,font=\Large,minimum size=3.0cm,text width=2.5cm,},
            level 2/.style={level distance=12cm,font=\large,minimum size=2.0cm,text width=2.0cm}
        ]
        \node [root concept]{Suppliers} 
        child[noc=3,branch color=yellow!70]{node {Retail} 
            child[] {node {CGPI}} 
            child[] {node {Banques priv\'ees}} 
            child[] {node {Retail banking}} 
        }
        child[noc=3,branch color=yellow!70]{node {ALM} 
            child[] {node {Mutuelles}} 
            child[] {node {Assurances}} 
            child[] {node {Caisse de retraite}}         
        } 
        child[noc=1,branch color=yellow!80]{node {Directions financi\'eres} 
            child[] {node {Corporate}} 
        } 
        child[noc=3,branch color=yellow!70]{node {Instrument specialists} 
            child {node {Asset Managers traditionnels}} 
            child {node {Hedge funds}} 
            child {node {Trading desks form other banks}} 
        } 
        ;
    \end{scope}

\end{tikzpicture}
\end{document}

The Cat solution already helped me to produce this improvable solution enter image description here

3
  • 1
    Does it have to be done all in the same document...? Otherwise I wonder if each one could be created separately, and then the poster might be build by layering the individual images...? Not sure if that would be helpful or not....
    – cmhughes
    Mar 14, 2020 at 13:43
  • @cmhughes My original solution consisted of creating each mindmap and position each resulting pdf on a poster but I lose all possibility to connect nodes after :/ Am investigating the "transform canvas" option but no result so far... tex.stackexchange.com/questions/26846/…
    – JeT
    Mar 14, 2020 at 13:45
  • @cmhughes after multiple attempts, with 8 mindmaps to display, the code becomes too messy and it turns your idea is very good. May I ask you how you would proceed?
    – JeT
    May 7, 2020 at 1:20

1 Answer 1

5

As before, the problem comes from \pgftransfromreset. As a first proposal, I added two keys, overall xshift and overall yshift to fix this. They can be combined with ordinary shifts using Xshift and Yshift, respectively.

\documentclass[tikz,border=9]{standalone}
\usetikzlibrary{mindmap,decorations}
\usepackage{xspace}

\makeatletter
\newcount\tikzcountgrandchild
\def\tikz@grow@concentric{%
  \pgftransformreset%
  \pgftransformshift{\pgfpoint{\pgfkeysvalueof{/tikz/overall xshift}}{\pgfkeysvalueof{/tikz/overall yshift}}}% 
  \pgftransformrotate{\pgfkeysvalueof{/tikz/overall rotation}+(\pgfkeysvalueof{/tikz/sibling angle})*(\tikzcountgrandchild)}%
  \ifnum\tikztreelevel=1
    \pgftransformrotate{(\pgfkeysvalueof{/tikz/sibling angle})*(\pgfkeysvalueof{/tikz/noc}-1)/2}%
  \fi
  \pgftransformxshift{\the\tikzleveldistance}%
  \ifnum\tikztreelevel=2
    \global\advance\tikzcountgrandchild by1
 \fi
}

\begin{document}
\tikzset{overall rotation/.initial=0,
    overall xshift/.initial=0pt,
    overall yshift/.initial=0pt,
    Xshift/.style={xshift=#1,overall xshift=#1},
    Yshift/.style={yshift=#1,overall yshift=#1},
    noc/.initial=0,
    branch color/.style={
        concept color=#1!white,
        every child/.append style={concept color=#1!white!30!white},
    }
}

\begin{tikzpicture}
    \begin{scope}[text width=1.5cm,align=flush center,
            mindmap,growth function=\tikz@grow@concentric,
            overall rotation=-45,
            sibling angle=360/30,
            nodes={concept},
            concept color=green!70!black,
            root concept/.append style={ ball color=green!50, line width=1.5ex,text=green!40!black,font=\huge\bfseries\scshape,minimum size=4.5cm,text width=4.5cm,},                   
            level 1/.style={,level distance=8cm,font=\Large,minimum size=3.0cm,text width=2.5cm,},
            level 2/.style={level distance=12cm,font=\large,minimum size=2.0cm,text width=2.0cm}
        ]
        \node [root concept]{Clients} 
        child[noc=3,branch color=green!70]{node {Retail} 
            child[] {node {CGPI}} 
            child[] {node {Banques priv\'ees}} 
            child[] {node {Retail banking}} 
        }
        child[noc=3,branch color=green!70]{node {ALM} 
            child[] {node {Mutuelles}} 
            child[] {node {Assurances}} 
            child[] {node {Caisse de retraite}}         
        } 
        child[noc=1,branch color=green!80]{node {Directions financi\'eres} 
            child[] {node {Corporate}} 
        } 
        child[noc=3,branch color=green!70]{node {Instrument specialists} 
            child {node {Asset Managers traditionnels}} 
            child {node {Hedge funds}} 
            child {node {Trading desks form other banks}} 
        } 
        ;
    \end{scope}

    \begin{scope}[Xshift=-5cm,text width=1.5cm,align=flush center,
            mindmap,growth function=\tikz@grow@concentric,
            overall rotation=45,
            sibling angle=360/30,
            nodes={concept},
            concept color=yellow!70!black,
            root concept/.append style={ ball color=yellow!50, line width=1.5ex,text=yellow!40!black,font=\huge\bfseries\scshape,minimum size=4.5cm,text width=4.5cm,},                   
            level 1/.style={,level distance=8cm,font=\Large,minimum size=3.0cm,text width=2.5cm,},
            level 2/.style={level distance=12cm,font=\large,minimum size=2.0cm,text width=2.0cm}
        ]
        \node [root concept]{Suppliers} 
        child[noc=3,branch color=yellow!70]{node {Retail} 
            child[] {node {CGPI}} 
            child[] {node {Banques priv\'ees}} 
            child[] {node {Retail banking}} 
        }
        child[noc=3,branch color=yellow!70]{node {ALM} 
            child[] {node {Mutuelles}} 
            child[] {node {Assurances}} 
            child[] {node {Caisse de retraite}}         
        } 
        child[noc=1,branch color=yellow!80]{node {Directions financi\'eres} 
            child[] {node {Corporate}} 
        } 
        child[noc=3,branch color=yellow!70]{node {Instrument specialists} 
            child {node {Asset Managers traditionnels}} 
            child {node {Hedge funds}} 
            child {node {Trading desks form other banks}} 
        } 
        ;
    \end{scope}

\end{tikzpicture}
\end{document}

enter image description here

3
  • 1
    It works like a charm ! I'll be able to show you the result soon :) Merci for your help again.
    – JeT
    Mar 14, 2020 at 14:29
  • 2
    @Julien-ElieTaieb You're welcome! I plan to see a bit later if one can make it more user friendly.
    – user194703
    Mar 14, 2020 at 14:32
  • I'd be happy to see it ! I posted the result of your help today.
    – JeT
    Mar 14, 2020 at 21:02

You must log in to answer this question.

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