Is it possible to assign independent properties further than colour (through set color list), e.g., shape, border, opacity...to each satellite around the central planet in an independent fashion?



planet size                   =2.3cm,  
satellite size                =1.8cm,  
satellite text opacity        =1,   
set color list                ={yellow, cyan, green, red, orange}  

\smartdiagram[constellation diagram]{ SUN , A-STAR, B-STAR, C-STAR, D-STAR, E-STAR }  

MWE produces 5 satellites around the central planet with user-defined colors. I would like to customize also other properties of each one, e.g. assign different sizes to each one.

  • Please provide us with an MWE, i.e. a compilable code that starts with \documentclass and ends with \end{document}. Use this MWE to explain in more detail what you want to achieve.
    – user121799
    Feb 15, 2019 at 15:53

1 Answer 1


While you can change all of the satellite shapes in one go by setting the satellite style via \tikzset (see this answer), no interface is provided for doing so on a satellite-by-satellite basis.

I would recommend drawing the diagram in tikz, without the smartdiagram package which is convenient but does not provide the flexibility you need. Using tikz nodes for each satellite, you can load the shapes.geometric library and use any of the plethora of shapes from there for any or none of your satellites (refer to section 70 of the tikz manual).

In the below code I define three base tikz styles - one for the sun, one for the satellites and one for the satellite arrows. To actually construct the diagram, I firstly place a pentagon down called frame and use the anchors defined at its center (frame.center) and each corner (frame.corner 1 etc.) as positions of the sun and each satellite. I've also made two of the satellites star shaped.

% \usepackage{smartdiagram}
\usetikzlibrary{shapes.geometric} % tikz library for node shapes
                    color = black!70,
                    fill = black!15,
                    minimum size = 2.75cm,
                    inner sep = 0.1cm}}
                    color = black!70,
                    minimum size = 1.8cm,
                    inner sep = 0.1cm}}
                        line width = 0.125cm}}
\draw (0,0) node (frame) [shape=regular polygon, minimum size=7cm, rotate=-15] {};
\node (sun)         at (frame.center)   [sun]                                           {SUN};
\node (satellitea)  at (frame.corner 1) [satellite, fill=yellow!50]                     {A-STAR};
\node (satelliteb)  at (frame.corner 2) [satellite, star, inner sep=0cm, fill=blue!50]  {B-STAR};
\node (satellitec)  at (frame.corner 3) [satellite, fill=green!50]                      {C-STAR};
\node (satellited)  at (frame.corner 4) [satellite, star, inner sep=0cm, fill=red!50]   {D-STAR};
\node (satellitee)  at (frame.corner 5) [satellite, fill=orange!50]                     {E-STAR};
\draw [satellitearrow, draw=yellow!50]  (sun) -- (satellitea);
\draw [satellitearrow, draw=blue!50]    (sun) -- (satelliteb);
\draw [satellitearrow, draw=green!50]   (sun) -- (satellitec);
\draw [satellitearrow, draw=red!50]     (sun) -- (satellited);
\draw [satellitearrow, draw=orange!50]  (sun) -- (satellitee);

Output: output

Obviously you may want to tweak the colours (take a look at LaTeX/Colors if you need ideas).

You have control over a great number of aspects of the diagram. For example, by changing the valueminimum size and rotate of the first frame node you can easily expand/shrink and rotate the diagram without breaking it. You could even make a fun animation using this :).

You must log in to answer this question.

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