(1) 3D in TAChart is kind of "fake", there is not "hidden line/hidden area" algorithm", and there are situation where it looks really wrong. But I spent a lot of time with the Pie series, and it looks almost always correct.
The key parameter is, as you noticed, the Depth property, it defines the length if the in-depth lines connecting the font and back images of the series (in pixels)
procedure TForm1.Toggle3D;
begin
if PieSeries.Depth = 0 then PieSeries.Depth := 25 else PieSeries.Depth := 0;
end;
Using the "Orientation" requires Lazarus trunk, it is not yet contained in the current releases. It defines how the pies are oriented with respect to the viewer. poNormal has the circle upright like a wheel, poVertical, too, but the viewing direction is more oblique. in poHorizontal the wheel lies flat on the floor.
(2) To label the x axis with strings you must assign a chartsource to the xaxis.Marks.Source and set xaxis.Marks.Style to smsLabel. For example, when you have 12 expense values (one each per month) you can add the data to the series like this (there are many other ways...):
series.AddXY(1, expenses_Jan, 'Jan');
series.AddXY(2, expenses_Feb, 'Feb');
...
This way the data points are stored in the internal "ListSource of the series, and you added a text value to each data point. You can assign the series.ListSource to the xAxis.Marks.Source as noted to see the labels at runtime.
Alternatively, you can add a separate TListChartSource to the form and put the month numbers and names in there. I added a demo to show this.
(3) TPieSeries is a bit special. It normally has only Y values which, normalized to 360 degrees, are the opening angles of the pies. When X is 0 then the pies are centered. But when x of a pie is greater than 0 then the pie moves away from the center. Note however, that x is measured in units of the pie radius, i.e. when x is 0.1 (a good value) the pie would be offset by 1/10th of the radius.
PieSeries.AddXY(0, 1000, 'Jan');
PieSeries.AddXY(0, 1100, 'Feb');
PieSeries.AddXY(0, 950, 'Mar');
PieSeries.AddXY(0.1, 1200, 'April'); // <--- 0.1 --> Pie will be offset by 10% of the pie radius
PieSeries.AddXY(0, 1030, 'May');
...
There is a pie series demo in folder (lazarus)/components/tachart/demo/radial of your Lazarus installation. It demonstrates also how a pie can be offset by clicking with the mouse.