Pie charts script for OmniGraffle

Example pie chartFrustrated by a lack of simple software for drawing easily editable pie-charts from simple data, I wrote a simple Applescript for the excellent OmniGraffle drawing package to do just that.

Pie charts are a bad way of displaying information. Consider using a bar chart instead, which allows easier comparison of values than the angular plotting of variables.

Take the example shown here. It's easy to tell that Sleep is half, and kinda easy to see that Play is probably about a quarter. It's impossible to tell without a protractor how much is Work or Eat, although (in this case) you can see that Eat is less than Work. It's difficult even to tell if Eat is more or less than half of the size of Work. Then again, they do look very... Use with caution, in limited situations.

Latest version: Adds labels on little stalks to the slices! (2006-02-20)


  1. Download Applescript icon pie_chart.zip (8 KB).
  2. Install the script.
  3. In OmniGraffle open a new document and select Script > Pie chart.
  4. Dialog for data entryIn the window that appears enter the appropriate data, separated by spaces. It doesn't have to be whole numbers, but it will freak out if your put in negatives. Also, it doesn't necessarily have to add up to 100.
  5. Basic pie chartHit OK... tada! (Version 1.3 of this script produces the labels for slices on lines, so will look a little different from the images here.)

Tips and other uses

What you have now is pretty neat, but can easily be made to look a lot better with some obvious (and some less obvious) tricks.

Pie chart, with coloured slicesChange the fill colour of the pie slices.

Rotated pie chartRotate the chart if you need to. Select all the slices, then either Command-drag one of the blue control boxes or twiddle the twiddly thing in the Geometry inspector palette. The positioning of the numbers tends to get a little confused when you do this. Some form of sanity can be restored by clicking on the text alignment thingy in the Text Position inspector.

Scaled pie chartScale the chart. Again, select all the slices, then drag the blue control points around. Holding down shift while doing this preserves the aspect ratio.

Pie chart with spaced out slicesSpace out the slices. Slightly sneaky this one. Setting the stroke colour of the slices to the same as the background, then changing the stroke thickness changes the apparent gap between the slices.

The finished pie chartNew in v1.3! Labels and lines are automatically added. Obviously the labels are just numbers, so you will probably want to change them to be something more meaningful.

A slice, with magnets and a labelNew in v1.1! The script now automatically adds a magnet half way around the arc of each pie slice. This makes lines from labels or other shapes naturally attach themselves in a much more sensible fashion.

And if you've got a lot of time to kill, and a limited palette...

Complexity, in graph form

Known 'features'

Things to maybe get around to some nice day


Version history

1.4 (2008-04-30)
Script updated to work in Omnigraffle 5.0. No changes to the features.
1.3 (2006-02-20)
Script now (in OmniGraffle 4.x only) draws little lines from the slices to the data. They're sometimes a little squint, but possibly better than nothing! Not sure if there should be two separate versions of the script to do this, or not do this. Comments appreciated.
1.2 (2005-06-03)
Now works with both OmniGraffle 3.2 or later and with 4 beta 1 and hopefully later betas. When using version 4 the script uses Bezier curves instead of points which makes for more efficient (and accurate) slices.
1.1 (2005-04-19)
Now adds a magnet to each pie slice, half way around its arc. This makes lines for labels stick to more sensible places.
1.0 (2005-02-23)
Initial release. Apparently works with OmniGraffle versions 3.2 beta 1, 3.2 and 3.2.1. Should also work fine with corresponding Pro versions of OmniGraffle.