JavaScript
// Nominated the div to hold the Raphael area
var r = Raphael("holder", 395, 245);
// Set variables for animation speed easing
var speed = 800;
var easing = "bounce";
// Draw the lines and base for the chart
r.path("M5,0 345,122").attr("stroke-dasharray", ". ");
r.path("M5,25 345,147").attr("stroke-dasharray", ". ");
r.path("M5,50 345,172").attr("stroke-dasharray", ". ");
r.path("M5,75 345,197").attr("stroke-dasharray", ". ");
r.path("M5,100 345,222").attr("stroke-dasharray", ". ");
r.path("M0,105 5,100 345,222 340,227z").attr({
stroke: "none",
fill: "#999"
});
// These strings will be used to flesh out the new paths when they are transformed
var innerPath = " 15,110 0,105z";
var outerPath = " 20,105 15,110 0,105z";
//All of the graph results in a whole bunch of arrays
canadaResults = [100, 100, 9];
usaResults = [93, 86, 16];
ukResults = [86, 72, 23];
franceResults = [79, 65, 30];
germanyResults = [72, 58, 37];
brazilResults = [65, 44, 44];
africaResults = [58, 37, 51];
indiaResults = [51, 37, 58];
chinaResults = [44, 44, 65];
japanResults = [37, 58, 72];
ausResults = [30, 65, 79];
otherLAResults = [23, 72, 86];
otherEuropeResults = [16, 86, 93];
otherAsiaResults = [9, 100, 100];
// create variables for each path, inner and outer for each bar
var canada_inner, canada_outer, usa_inner, usa_outer, uk_inner, uk_outer, france_inner, france_outer, germany_inner, germany_outer, brazil_inner, brazil_outer, africa_inner, africa_outer, india_inner, india_outer, china_inner, china_outer, japan_inner, japan_outer, aus_inner, aus_outer, otherLA_inner, otherLA_outer, otherAsia_inner, otherAsia_outer, otherEurope_inner, otherEurope_outer = r.path();
//create raphael sets to group the paths together in paris. One love.
var canadaBar = r.set();
var usaBar = r.set();
var ukBar = r.set();
var franceBar = r.set();
var germanyBar = r.set();
var brazilBar = r.set();
var africaBar = r.set();
var indiaBar = r.set();
var chinaBar = r.set();
var japanBar = r.set();
var...