Mathematica, 186 183183 164 bytes
Graphics[{Hue@#,Disk[{0,0},{1,1},a=2Pi{##}],Black,Text[ToString@Round[100(#2-#)]<>"%",FromPolarCoordinates@5Through@{5/4,Mod[Mean@a,2PiCos,-Pi]Sin}]@Mean@a/4]}&@@@Partition[Accumulate[#/Tr@#]~Prepend~0,2,1]]&
Could be golfed further. Currently generates a Graphics
object. Test cases: