# Make ChartLabels appear only for the outer layer of data

I am using the following code to produce the graph below. I would like to modify its ChartLabels so they appear only for the outermost layer.

data = {{"Benefit_type", "IP", "OP", "OPT", "DNT",
"MTR"}, {"older_earned_net_premium", 134., 223., 345., 234.,
234.}, {"previous_earned_net_premium", 54., 175., 235., 234.,
123.}};

PieChart[
#[[2 ;;, 2 ;;]]/(Plus @@@ (#[[2 ;;, 2 ;;]]))*100,
LabelingFunction -> (Placed[Row[{NumberForm[#, {3, 1}], "%"}],
ChartLabels -> Placed[#[[1, 2 ;;]], "RadialCallout"],
LabelStyle -> FontSize -> 12,
PlotTheme -> "Detailed",
ImageSize -> Large
] &@data


• Could you provide the reproducable code? – ercegovac Oct 6 '17 at 10:36
• I have added the reproducible code. – user13892 Oct 6 '17 at 10:44

Wrap the last dataset with Labeled and remove ChartLabels:
Module[{d = 100 Normalize[#, Total] & /@ #[[2 ;;, 2 ;;]], labels = #[[1, 2 ;;]]},

• Although i needed it to work for any number of data layers not just two but using Slot function i was able to generalize your solution. Thank you! – user13892 Oct 6 '17 at 13:09