Rotate Shinobi Pie Chart or position labels when they overlap


Good day.

I am using pie chart to display some data. I have disabled user interactions with my chart and everything works fine. The only issue that i am facing is that when my datapoints (i use only one serie) have one datapoint that exceeds any other, all other points get very little space in chart and also they are all facing up. I am also using labels with lines to display slice names around the pie chart. So the names (labels) get all jammed up above the chart…

So i can think of only two solutions:

  1. When i position labels i check if any of them collides and i they do, i reposition them somewhere else (thats what i do now but all the labels get into a “cloud” of words above the chart.

  2. i could rotate the chart so, that the maximum datapoint is always facing left (then all others would be facing right and my labels would fit much more nicely.

So my question is this: Can i rotate shinobi Pie Chart so, that the largest value datapoint would be facing left/right ? Not down like it does now.

Maybe Pie chart have some magic property that positions labels in best locations automatically?


Oh yeah, i want to rotate it by code and without animation if possible. I did try “RadialSeries  rotateSliceAtIndex:0 toAngle:1.57079633 withAnimation:SChartAnimationCurveLinear” but it does nothing at all…


So i found the solution myself: you can use this code:

[(SChartDonutSeries*)[[chart series] firstObject] setRotation:-1.570];

To rotate first (the only in my case) DonutSerie by approx -90 degrees with this line of code. I use it in this delegate method: