I want to draw a figure with 6 small circles surrounding a circle in the middle
Edit:
Drawing this (simple) diagram with pure tikz
package directly in document is not so difficult. In this you need to do the following:
- define nodes style (color as parameter, size with
text width
and align of multi line text withalign=center
(orflush center
when you not liked eventual hyphenation of node's text) - define distance between centers of the
planet
andsatellite
node - draw
satellite
and arrows between \planetand
satelite`s nodes in loop, which determine color of satellites and text in it:
\documentclass[journal,comsoc]{IEEEtran}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usepackage{caption}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}[
planet/.style = {circle, draw=blue, semithick, fill=blue!30,
font=\large\bfseries,
text width=24mm, inner sep=1mm,align=center}, %<---
satellite/.style = {circle, draw=#1, semithick, fill=#1!30,
text width=16mm, inner sep=1mm, align=center},%<---
arr/.style = {-{Triangle[length=3mm,width=6mm]}, color=#1,
line width=3mm, shorten <=1mm, shorten >=1mm}
]
% planet
\node (p) [planet] {Features};
% satellites and connections
\foreach \i/\j [count=\k] in {red/K, cyan/A, purple/P, teal/Z, orange/lack of resistance, yellow/Q}
{
\node (s\k) [satellite=\i] at (\k*60:3.4) {\j};
\draw[arr=\i] (p) -- (s\k);
}
\end{tikzpicture}
\caption{Cycle of Interaction}
\end{figure}
\end{document}
which gives:
First version of answer:
Like this (reconstruction of showed image)?
For such diagrams is designed the smartdiagram
package:
\documentclass{article}
\usepackage{smartdiagram}
\usetikzlibrary{arrows.meta}
\usepackage{caption}
\begin{document}
\begin{figure}
\smartdiagramset{
planet font=\large\bfseries,planet text width=28mm,
satellite font=\normalsize\bfseries, satellite text width=22mm,
distance planet-satellite=44mm,
/tikz/connection planet satellite/.append style={-{Triangle[length=3mm,width=6mm]},
line width=3mm},
}
\centering
\smartdiagram[constellation diagram]%
{
% text in the planet
Chaleneges of Blockchain,
% texts in satellites
Privacy, Authentication, Bandwidth, Bootstraping,
Usability, Data Malleability, Wasted Resources, Scalability%
}
\caption{Cycle of Interaction}
\end{figure}
\end{document}
or with six satellites with text given in your MWE:
\documentclass{article}
\usepackage{smartdiagram}
\usepackage{caption}
\begin{document}
\begin{figure}
\smartdiagramset{
planet font=\large\bfseries, planet text width=5em,
satellite font=\normalsize,
}
\centering
\smartdiagram[constellation diagram]%
{
% text in the planet
Features,
% texts in satellites
K, A, P, Z, MM, Q%
}
\caption{Cycle of Interaction}
\end{figure}
\end{document}
Addendum:
I overlooked which document class is used ... unfortunately smartdiagram
doesn't work with IEEEtran
document class (yet). To resolve this incompatibility there is two possibilities:
- draw above proposition with
standalone
package and than import resulted pdf` file into document. For example:
\documentclass[tikz, margin=1pt]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[
planet/.style = {circle, draw=blue, semithick, fill=blue!30,
font=\large\bfseries, inner sep=2mm},
satellite/.style = {circle, draw=#1, semithick, fill=#1!30,
minimum size=4em, inner sep=2mm},
arr/.style = {-{Triangle[length=3mm,width=6mm]}, color=#1,
line width=3mm, shorten <=1mm, shorten >=1mm}
]
% planet
\node (p) [planet] {Features};
% satellites and connections
\foreach \i/\j [count=\k] in {red/K, cyan/A, purple/P, teal/Z, orange/MM, yellow/Q}
{
\node (s\k) [satellite=\i] at (\k*60:3.2) {\j};
\draw[arr=\i] (p) -- (s\k);
}
\end{tikzpicture}
\end{document}
which generate image as shown the second example above and insert its pdf
file (for example named cycle-smartdiagram) in your document as follows:
\documentclass[journal,comsoc]{IEEEtran}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{figure}[h!]
\centering
\includegraphics{cycle-smartdiagram}% or whatever name you select
\caption{Cycle of Interaction}
\label{fig:cycle}
\end{figure}
\end{document}
- draw this (simple) diagram with pure
tikz
package directly in document (see edit on the top of answer)
Here's one solution. I've hidden the default mind map connectors (using concept color=none
) and used the arrows.meta
library to create new arrow connectors.
(Update @Zarko's arrows are similar to mine, but more simply implemented. I used unnecessarily complex code from another document of mine. I'll switch to his arrows, but leave my answer to show an answer using a mind map.)
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{mindmap,arrows.meta}
\begin{document}
\begin{tikzpicture}[
mindmap, every node/.style={concept, ball color=blue!30},
concept color=none, grow cyclic,
mindmapArrow/.style={-{Triangle[length=3mm,width=6mm]},
color=blue!20!white, line width=3mm,
shorten <=2mm, shorten >=2mm},
root concept/.append style={minimum size=3.5em, text width=5em,
font=\bfseries},
level 1/.append style={sibling angle=60, level distance=2.5cm,
minimum size=3em, text width=2em}]
\node (root) [root concept] {Features}
child { node (child1) {K} }
child { node (child2) {A} }
child { node (child3) {P} }
child { node (child4) {Z} }
child { node (child5) {MM} }
child { node (child6) {Q} };
\foreach \child in {1,...,6} {
\draw[mindmapArrow] (root) -- (child\child);
}
\end{tikzpicture}
\end{document}
Maybe you can try to use a different (and much simpler) approach by the one based on \begin{tikzpicture}
, etc..
For example, you can make your life easier if you use the Ipe program (http://ipe.otfried.org), which is free. Then you can easily draw your diagram and even use fonts of LaTeX and colours with different opacity. As it is well known, the exported .eps file by Ipe, can be included in your .tex file as follows
\begin{figure}[h!]
\centering
\includegraphics[scale=0.6]{name.eps}
\caption{...}
\label{fig:..}
\end{figure}
I hope this helps and provides a simpler solution.
Here is an example: