# RFP Process on a graph

I am trying to show the process of proposal on a graph may be it is called "Bull's Eye". Please have a look at the graph.

I have 7 companies that I sent the RFP to. My RFP process has 6 stages. Each stage is shown by a circle. I want to label each circle as shown in the image.I also want to draw a line under the company name and connect it to the point on the circle indicating in what stage is this particular company. The company name can be shifted to make drawing easy. I did draw the circles and companies but I got stuck.

Here is my code

\definecolor{forestgreen}{RGB}{60,127,50}
\definecolor{orange}{RGB}{255,109,0}
\definecolor{insightly}{RGB}{255,74,0}
\definecolor{minbelow}{RGB}{167,116,16}
\definecolor{xyellow}{RGB}{205,205,0}
\definecolor{purple}{RGB}{109,2,146}
\definecolor{blue}{RGB}{19,19,202}

\def\mybs{.55cm}
\def\mcs{.55cm}
\def\mybf{.55cm}
\def\mcf{.55cm}

\begin{tikzpicture}
\draw[green] (0,0) circle (\mybf+.05cm*\mcf);
\draw[xyellow] (0,0) circle (\mybf+.1cm*\mcf);
\draw[yellow] (0,0) circle (\mybf+.15cm*\mcf);
\draw[orange] (0,0) circle (\mybf+.2cm*\mcf);%
\draw[red!70] (0,0) circle (\mybf+.25cm*\mcf);
\draw[red] (0,0) circle (\mybf+.3cm*\mcf);
\draw[fill=forestgreen] (0,0) circle (.02mm);
\draw[decoration={text along path,text={RFP Submission},text align={center},text color={red}},decorate] (0.3,3.3) to [bend left=110]  (2.8,1.9);
\draw[decoration={text along path, text={Contract},text align={center},text color={forestgreen}},decorate] (-1.9,1.0) to [bend left=45](-.9,2);
\draw[decoration={text along path, text={Contract},text align={center},text color={forestgreen}},decorate] (-1.9,1.0) to [bend left=45](-.9,2);
\draw[decoration={text along path,text={|\small|Award},text align={center},text color={green}},decorate] (-2,-.9) to [bend left=75]  (1,.9);

\draw[decoration={text along path,text={|\small|Award},text align={center},text color={green}},decorate] (-2,-.9) to [bend left=75]  (1,.9);
\node[draw, circle, inner sep=.2mm] (a) at (0,0) {};
\draw[decoration={text along path, text={Contract},text align={center},text color={forestgreen}},decorate] (-1.9,1.0) to [bend left=45](-.9,2);
\draw[decoration={text along path,text={|\small|Award},text align={center},text color={green}},decorate] (-2,-.9) to [bend left=75]  (1,.9);

\foreach \x [count=\xi] in {360, 309, ..., 51}
{
}
\def\shi{4.3cm};
\def\ashi{0};
\def\angle{360/10};
\end{tikzpicture}


I edit the code below to show the full code

\documentclass[a4paper,12pt,titlepage,twoside,final,openany]{book}
\usepackage{tikz}
\begin{document}

\usetikzlibrary{decorations.text}
\usetikzlibrary{arrows}
\usetikzlibrary{intersections, calc, fpu, decorations.pathreplacing}

\definecolor{forestgreen}{RGB}{60,127,50}
\definecolor{orange}{RGB}{255,109,0}
\definecolor{insightly}{RGB}{255,74,0}
\definecolor{minbelow}{RGB}{167,116,16}
\definecolor{xyellow}{RGB}{205,205,0}
\definecolor{purple}{RGB}{109,2,146}
\definecolor{blue}{RGB}{19,19,202}

\def\mybs{.55cm}
\def\mcs{.55cm}

\def\mybf{.55cm}
\def\mcf{.55cm}

\begin{tikzpicture}

\draw[green] (0,0) circle (\mybf+.05cm*\mcf);
\draw[xyellow] (0,0) circle (\mybf+.1cm*\mcf);
\draw[yellow] (0,0) circle (\mybf+.15cm*\mcf);
\draw[orange] (0,0) circle (\mybf+.2cm*\mcf);
\draw[red!70] (0,0) circle (\mybf+.25cm*\mcf);
\draw[red] (0,0) circle (\mybf+.3cm*\mcf);
\draw[fill=forestgreen] (0,0) circle (.02mm);
\draw[decoration={text along path,text={RFP Submission},text align={center},text color={red}},decorate] (0.3,3.3) to [bend left=110]  (2.8,1.9);
\draw[decoration={text along path, text={Contract},text align={center},text color={forestgreen}},decorate] (-1.9,1.0) to [bend left=45](-.9,2);
\draw[decoration={text along path, text={Contract},text align={center},text color={forestgreen}},decorate] (-1.9,1.0) to [bend left=45](-.9,2);
\draw[decoration={text along path,text={|\small|Award},text align={center},text color={green}},decorate] (-2,-.9) to [bend left=75]  (1,.9);

\draw[decoration={text along path,text={|\small|Award},text align={center},text color={green}},decorate] (-2,-.9) to [bend left=75]  (1,.9);
\node[draw, circle, inner sep=.2mm] (a) at (0,0) {};
\draw[decoration={text along path, text={Contract},text align={center},text color={forestgreen}},decorate] (-1.9,1.0) to [bend left=45](-.9,2);
\draw[decoration={text along path,text={|\small|Award},text align={center},text color={green}},decorate] (-2,-.9) to [bend left=75]  (1,.9);

\foreach \x [count=\xi] in {360, 309, ..., 51}
{
}
\def\shi{4.3cm};
\def\ashi{0};

\def\angle{360/10};
\end{tikzpicture}
\end{document}

• Please post complete code we can compile as it is much easier than trying to guess how you have got that stuff to work! – cfr Dec 1 '15 at 2:15

Something like this?

\documentclass[tikz,border=10pt,multi]{standalone}
\usetikzlibrary{decorations.text}
\begin{document}

\definecolor{forestgreen}{RGB}{60,127,50}
\definecolor{orange}{RGB}{255,109,0}
\definecolor{insightly}{RGB}{255,74,0}
\definecolor{minbelow}{RGB}{167,116,16}
\definecolor{xyellow}{RGB}{205,205,0}
\definecolor{purple}{RGB}{109,2,146}
\definecolor{blue}{RGB}{19,19,202}

% use \newcommand - not \def - or you won't know that you are overwriting existing commands (e.g. \angle)
\newcommand*\mybs{.55cm}
\newcommand*\mcs{.55cm}
\newcommand*\mybf{.55cm}
\newcommand*\mcf{.55cm}
\newcommand*\shi{4.3cm}
\newcommand*\ashi{0}
\newcommand*\myangle{36}

\tikzset{
deco/.style n args=2{
postaction={decorate, decoration={text along path, text=#2, text align=center, text color=#1},},
},
mini node/.style={circle, draw, fill=gray, inner sep=.5mm}
}
\begin{tikzpicture}
\foreach \i/\j [count=\k from=0] in {RFP Submission/red,Repack/red,Proposal/red!50!orange,Finale/orange!50!yellow,Contract/forestgreen,Award/green}
\draw [\j, deco={\j}{\i}] (0,-\mybf-3mm*\mcf+\k*.5mm*\mcf) arc (270:-90:\mybf+3mm*\mcf-\k*.5mm*\mcf) ;
\node [draw, fill=forestgreen, circle, inner sep=.2mm] (a) at (0,0) {};
\foreach \i/\j [count=\k from 1] in {360/3, 309/0, 258/5, 207/4, 155/3, 120/1, 52/2}
{
\draw [thin, gray!40] (a) -- (\i:\radiusf+89);
\draw (\i:\mybf+3mm*\mcf-\j*.5mm*\mcf) node [mini node, inner sep=.2mm] {} -- (\i:\mybf+3mm*\mcf+.5mm*\mcf) coordinate (a\k);
\ifnum\i<270 \ifnum\i>90
\node (company \k) [anchor=south east] at (a\k)  {Company \k};
\draw (company \k.south east) -- (company \k.south west) node [mini node] {};
\else
\node (company \k) [anchor=south west] at (a\k)  {Company \k};
\draw (company \k.south west) -- (company \k.south east) node [mini node] {};
\fi
\else
\node (company \k) [anchor=south west] at (a\k)  {Company \k};
\draw (company \k.south west) -- (company \k.south east) node [mini node] {};
\fi
}
\end{tikzpicture}
\end{document}


# EDIT

If you need different names for companies, just add an additional variable to the loop:

\begin{tikzpicture}
\foreach \i/\j [count=\k from=0] in {RFP Submission/red,Repack/red,Proposal/red!50!orange,Finale/orange!50!yellow,Contract/forestgreen,Award/green}
\draw [\j, deco={\j}{\i}] (0,-\mybf-3mm*\mcf+\k*.5mm*\mcf) arc (270:-90:\mybf+3mm*\mcf-\k*.5mm*\mcf) ;
\node [draw, fill=forestgreen, circle, inner sep=.2mm] (a) at (0,0) {};
\foreach \i/\j/\m [count=\k from 1] in {360/3/Apple, 309/0/Samsung, 258/5/Tesco, 207/4/Asda, 155/3/John Lewis, 120/1/Coop, 52/2/Weaver Street}
{
\draw [thin, gray!40] (a) -- (\i:\radiusf+89);
\draw (\i:\mybf+3mm*\mcf-\j*.5mm*\mcf) node [mini node, inner sep=.2mm] {} -- (\i:\mybf+3mm*\mcf+.5mm*\mcf) coordinate (a\k);
\ifnum\i<270 \ifnum\i>90
\node (company \k) [anchor=south east] at (a\k)  {\m};
\draw (company \k.south east) -- (company \k.south west) node [mini node] {};
\else
\node (company \k) [anchor=south west] at (a\k)  {\m};
\draw (company \k.south west) -- (company \k.south east) node [mini node] {};
\fi
\else
\node (company \k) [anchor=south west] at (a\k)  {\m};
\draw (company \k.south west) -- (company \k.south east) node [mini node] {};
\fi
}
\end{tikzpicture}


• Damn right. Thaaaaaaaaank you. I just wanted to add the complete code and found did it. – OOzy Pal Dec 1 '15 at 4:30
• It is better to post the complete code. In this case, I happened to be familiar with the library you were using, and it turned out that was the only addition I needed. But if it had been a different library or an additional package, I might or might not have known how to overcome the errors. (And it is annoying to have to guess when you know somebody could just have posted a line or two they've already written and saved you the errors and the search!) – cfr Dec 1 '15 at 4:55
• Very glad it helped though. You really had most of it and that made it a lot easier - even when I did something differently, I was still using your spacing. (Except for the companies which I moved a bit to avoid clashes with the labels on the circles.) – cfr Dec 1 '15 at 4:56
• One more thing I noticed that I can't change the company names because they get repeated. Company 1 and Company 2 are connected together. Company 1 for example Apple and Company 2 is Samsung. – OOzy Pal Dec 1 '15 at 4:57
• Please see edit. You just need another variable for the loop. – cfr Dec 1 '15 at 5:01