4

Currently, I'm working on an exploded pie chart with a bended arc indicating the direction of a process. My problem is that the bended arc I used as an arrow has no contour at it's arrow tip. Also, the overall arrow tip style should match the style of the existing arced arrow. My attempt looks as follows:

\documentclass{minimal}

\usepackage{tikz}
\usepackage{pgf-pie}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usetikzlibrary{arrows, decorations.markings}
\usepgfplotslibrary{smithchart}
\pgfplotsset{compat=newest,width=0.6\linewidth} 

\begin{document} 

\tikzstyle{vecArrow} = [thick, decoration={markings,mark=at position
   1 with {\arrow[semithick]{open triangle 60}}},
   double distance=1.4pt, shorten >= 5.5pt,
   preaction = {decorate},
   postaction = {draw,line width=1.4pt, white,shorten >= 4.5pt}]
\tikzstyle{innerWhite} = [semithick, white,line width=1.4pt, shorten >= 4.5pt]

\tikzstyle{CircArrow} = [thick, decoration={markings,mark=at position
   1 with {\arrow[semithick]{ triangle 90}}},
   double distance=3.5pt, shorten >= 4.5pt,
   preaction = {decorate},
   postaction = {draw,line width=3.5pt, black,shorten >= 4.5pt}]
\tikzstyle{innerCirc} = [semithick, gray,line width=3.5pt, shorten >= 4.5pt]

\begin{tikzpicture}
\pie[explode=0.2, sum=auto, color=white, rotate=30, text=inside, hide number, radius=5.0, /text/every inside/.style={align=center}]
{10/ 1. Charakte-\\risieren, 10/ 6. Erfahrungen\\sammeln, 10/ 5. Ergebnisse\\analysieren, 10/ 4. Projekt\\durchführen, 10/ 3. Prozess\\wählen, 10/ 2. Ziele setzen}

%\draw[very thick, <-, rotate=120] (1.5,0) arc (0:330:1.5cm);

\draw[CircArrow, rotate=90] (1.5,0) arc (0:-330:1.5cm);
\draw[innerCirc, rotate=90] (1.5,0) arc (0:-330:1.5cm);
\end{tikzpicture}
\end{document}
1
  • Can no one help me with the problem I have?
    – Peter1509
    Jul 29, 2022 at 5:36

2 Answers 2

2

I think you approach is a bit too complicated, since you can easily attach arrow tips to paths without the need to load any decorations library. You can use the postaction option instead to place two arrows with the same attributes on top of each other and change the color, decrease the line width and shorten the line ends of one of them:

\documentclass[border=10pt]{standalone}
\usepackage{pgf-pie}
\usetikzlibrary{arrows.meta}

\begin{document} 

\tikzset{
  thick arrow/.style={
    -{Triangle[angle=90:2.4142pt 1]},
    draw=black,
    line width=10pt, 
    postaction={
        -{Triangle[angle=90:1pt 1]},
        draw=gray,
        line width=8pt, 
        shorten <= 1pt,
        shorten >= 1.4142pt
    }
  }
}

\begin{tikzpicture}

\pie[explode=0.2, sum=auto, color=white, rotate=30, text=inside, hide number, radius=5.0, /text/every inside/.style={align=center}]
{10/ 1. Charakte-\\risieren, 10/ 6. Erfahrungen\\sammeln, 10/ 5. Ergebnisse\\analysieren, 10/ 4. Projekt\\durchführen, 10/ 3. Prozess\\wählen, 10/ 2. Ziele setzen}

\draw[thick arrow, rotate=90] (1.5,0) arc (0:-330:1.5cm);

\end{tikzpicture}
\end{document}

enter image description here

I used the TikZ library arrows.meta above, which also allows you to fill open arrows tips. But since that arrow tip is a closed triangle, this wouldn't have gotten you anywhere close to what you wanted:

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}

\begin{document} 

\begin{tikzpicture}

\draw[
    -{Triangle[angle=90:1pt 1, open, fill=gray]}, 
    line width=.5cm
] (0,0) -- ++(2,0);

\end{tikzpicture}
\end{document}

enter image description here

4

The answer below uses the wheelchart package, which I wrote.

The slices are shifted using the key explode.

The key value=1 is used so that the angle of each slice is the same.

The text in the slices is determined by the key wheel data. The macro \WCcount gives the current number of the slice.

The arrow is drawn by a separate \wheelchart. The arrow tip is obtained with the key slices end arrow.

enter image description here

\documentclass[border=6pt]{standalone}
\usepackage{wheelchart}
\begin{document}
\begin{tikzpicture}
\wheelchart[
  data=,
  explode,
  radius={0}{5},
  slices style={
    fill=none,
    draw=black
  },
  value=1,
  wheel data=\WCcount. \WCvarA,
  wheel data style={align=center}
]{%
  Charakte-\\risieren,
  Ziele setzen,
  Prozess\\wählen,
  Projekt\\durchführen,
  Ergebnisse\\analysieren,
  Erfahrungen\\sammeln%
}
\wheelchart[
  data=,
  radius={1.3}{1.7},
  slices end arrow={1}{-0.5},
  slices style={
    gray,
    draw=black
  },
  total angle=320
]{1}
\end{tikzpicture}
\end{document}

You must log in to answer this question.

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