making a pie chart
Björnke von Gierke
bvg at mac.com
Mon Nov 11 07:44:01 EST 2002
On Montag, Nov 11, 2002, at 11:12 Europe/Zurich, yves COPPE wrote:
> Hi,
>
> I have a list of ages with percent :
>
> 0-10 : 15
> 11-20 : 20
> 21-30 : 17
> ...
>
>
> does anyone know the script how to make a pie chart with this suite of
> data ?
>
> Thanks.
> --
> Greetings.
>
> Yves COPPE
I would take a look at the arcAngle and startAngle properties.
you could make 3 oval graphics and align them properly.
for your example, you would have to calculate like this:
15 + 20 + 17 = 52 // the whole circle is equivalent to 52 "pieces"
360 : 52 = 6.923077 // this is how big 1 "piece" would be in degree
15 * 6.923077 = 103.846155 // you must make a integer out of your
results
20 * 6.923077 = 138.46154 //try to round to integer but beware of
overlap and spaces!
17 * 6.923077 = 117.692309 //see how they are 360.000004 together?
The problem here is that you got all together 2.000004 behind the coma,
and you only should have 2, so its quiet hard to calculate it exactly...
maybe like this:
//this is untested, so use it at your own risk
put (15 * 6.923077) into varGraph1
put (20 * 6.923077) into varGraph2
put (17 * 6.923077) into varGraph3
//calculate how many rest can be distributed //its 2.000004, remeber?
put trunc((15 * 6.923077) mod 1 + (20 * 6.923077) mod 1 + (17 *
6.923077) mod 1) into theStinkinRest
//divide them evenly among the members
repeat for theStinkinRest times
add one to counter
if counter mod 3 = 0 then
add one to varGraph3
else if counter mod 2 = 0 then
add one to varGraph2
else
add one to varGraph1
end if
end repeat
Now create 3 ovals that are the same size, round and on the same
position
set the startangle of graphic "new graphic 1" to 360 //you could leave
that out
set the arcangle of graphic "new graphic 1" to 104
set the startangle of graphic "new graphic 2" to 104
set the arcangle of graphic "new graphic 2" to 139
set the startangle of graphic "new graphic 3" to 242 //139 + 103
set the arcangle of graphic "new graphic 3" to 117
voila, pie!
nice munching ;)
Björnke von Gierke
More information about the use-livecode
mailing list