PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TikZ Pie Chart Textfarben



technman
20-01-2020, 18:23
Hallo liebe Tech-Freaks,
ich hänge mal wieder an einem Problem bei dem ich Eure Hilfe benötige.

Habe ich mein Pie Chart als Kuchendiagramm, kann ich die Textfarbe der Beschriftung zwischen Schwarz und Weiß "umschalten". Ich würde aber gerne die "Cloud" Darstellung nehmen, hier funktioniert das aber nicht mehr. Der Tipp wie ich überhaupt die Textfarben ändern kann kam auch von Euch. Ich hoffe Ihr könnt mir wieder weiterhelfen.



\documentclass{article}
\usepackage{pgf-pie,etoolbox}

\makeatletter
\newcommand*\split@colors{}
\def\split@colors#1/#2/#3{%
\xdef\thecolor{#1}%
\ifx\relax#2\relax
\xdef\thetxtcolor{black}%
\else
\xdef\thetxtcolor{#2}%
\fi
}
\patchcmd\pgfpie@findColor{\xdef\thecolor{\c}}
{\expandafter\split@colors\c//}
{}{\typeout{Could not patch \string\pgfpie@findColor. Strange things may happen...}}

\patchcmd\pgfpie@slice
{node {\scalefont{#3}\beforenumber#3\afternumber}}
{node[\thetxtcolor, /every only number node/.try] {\scalefont{#3}\beforenumber#3\afternumber}}{}{}
\makeatother

\begin{document}

\begin{tikzpicture}
\pie[pos ={10,0}, sum=auto, radius=2, text=legend, color={blue/white,yellow,red}]{15/Fagott,3/Trompete,7/Posaune}
\end{tikzpicture}


%%% Warum ist hier die Textfarbe im blauen bobbel schwarz, obwohl ich weiß haben möchte?
\begin{tikzpicture}
\pie[pos ={10,0}, cloud, sum=auto, radius=2, text=legend, color={blue/white,yellow,red}]{15/Fagott,3/Trompete,7/Posaune}
\end{tikzpicture}

\end{document}



vielen Dank,

technman
22-01-2020, 20:01
Hey,
ich habs! Hier meine Lösung:



\makeatletter
\newcommand*\split@colors{}
\def\split@colors#1/#2/#3{%
\xdef\thecolor{#1}%
\ifx\relax#2\relax
\xdef\thetxtcolor{black}%
\else
\xdef\thetxtcolor{#2}%
\fi
}
\patchcmd\pgfpie@findColor{\xdef\thecolor{\c}}
{\expandafter\split@colors\c//}
{}{\typeout{Could not patch \string\pgfpie@findColor. Strange things may happen...}}


\patchcmd\pgfpie@cloud
{\node at (#1) {\scalefont{#3}\beforenumber#3\afternumber}}
{\node at (#1) [\thetxtcolor, /every only number node/.try] {\scalefont{#3}\beforenumber#3\afternumber}}{}{}
\makeatother