You can also use the "pie" transform to compute the angles, if you prefer that to signal expressions.
To create the color encoding you describe, you might consider encoding along separate color channels. For example, using the "hsl" or "hcl" color spaces, you could set the "h" (hue) channel based on the arc set, and the "s" (saturation) / "c" (chroma) and or "l" (luminance) channels based on data values within each group. For more about using color channels, see
https://vega.github.io/vega/docs/marks/#colorref