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