3

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.

enter image description here

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\radiuss{\mybs+.1cm*.55cm}
\def\mcs{.55cm}
\def\mybf{.55cm}
\def\radiusf{\mybf+.1cm*.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}
 {
   \draw[thin, gray!40] (a) -- (\x:\radiusf+89);
 }   
  \def\shi{4.3cm};
  \def\ashi{0};
  \draw (360:\radiusf+\shi) node at (360+\ashi:\radiusf+\shi) {Company 1};
  \draw (309:\radiusf+\shi) node at (309+\ashi:\radiusf+\shi) {Company 2};
  \draw (257:\radiusf+\shi) node at (257+\ashi:\radiusf+\shi) {Company 3};
  \draw (206:\radiusf+\shi) node at (206+\ashi:\radiusf+\shi) {Company 4};
  \draw (154:\radiusf+\shi) node at (154+\ashi:\radiusf+\shi) {Company 5};
  \draw (103:\radiusf+\shi) node at (103+\ashi:\radiusf+\shi) {Company 6};
  \draw (051:\radiusf+\shi) node at (051+\ashi:\radiusf+\shi) {Company 7};
  \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\radiuss{\mybs+.1cm*.55cm}
\def\mcs{.55cm}

\def\mybf{.55cm}
\def\radiusf{\mybf+.1cm*.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}
 {
   \draw[thin, gray!40] (a) -- (\x:\radiusf+89);
 }
 \def\shi{4.3cm};
 \def\ashi{0};
 \draw (360:\radiusf+\shi) node at (360+\ashi:\radiusf+\shi) {Company 1};
 \draw (309:\radiusf+\shi) node at (309+\ashi:\radiusf+\shi) {Company 2};
 \draw (257:\radiusf+\shi) node at (257+\ashi:\radiusf+\shi) {Company 3};
 \draw (206:\radiusf+\shi) node at (206+\ashi:\radiusf+\shi) {Company 4};
 \draw (154:\radiusf+\shi) node at (154+\ashi:\radiusf+\shi) {Company 5};
 \draw (103:\radiusf+\shi) node at (103+\ashi:\radiusf+\shi) {Company 6};
 \draw (051:\radiusf+\shi) node at (051+\ashi:\radiusf+\shi) {Company 7};

 \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
2

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*\radiuss{\mybs+.1cm*.55cm}
\newcommand*\mcs{.55cm}
\newcommand*\mybf{.55cm}
\newcommand*\radiusf{\mybf+.1cm*.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}

7 companies' progress

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}

more varied naming

  • 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.