JavaScript Bubble Chart allows you to visualize data in 3 dimensions. It is very much similar to Scatter Charts except that size of bubble represents another parameter/dimension. Out of the three parameters required (x, y, z), x & y determine the bubble's position on X & Y Axis & z determines its size. One notable behavior of bubble is that z value of data point is proportional to the area of bubble but not diameter/radius. Given example shows JavaScript Bubble Chart along with source code that you can edit in-browser or save to run it locally.
window.onload = function () { var chart = new CanvasJS.Chart("chartContainer", { animationEnabled: true, title:{ text: "Fertility Rate vs Life Expectancy in Different Countries - 2015" }, axisX: { title:"Life Expectancy (in Years)" }, axisY: { title:"Fertility Rate", includeZero: true }, legend:{ horizontalAlign: "left" }, data: [{ type: "bubble", showInLegend: true, legendText: "Size of Bubble Represents Population in Millions", legendMarkerType: "circle", legendMarkerColor: "grey", toolTipContent: "<b>{name}</b><br/>Life Exp: {x} yrs<br/> Fertility Rate: {y}<br/> Population: {z}mn", dataPoints: [ //{ x: 68.3, y: 2.4, z: 1309.05 , name: "India"}, //{ x: 76, y: 1.57, z:1371.22, name: "China"}, { x: 78.7, y: 1.84, z:320.896, name: "US" }, { x: 69.1, y: 2.44, z: 258.162, name: "Indonesia" }, { x: 74.7, y: 1.78, z: 225.962, name: "Brazil" }, { x: 76.9, y: 2.21, z: 125.890, name: "Mexico" }, { x: 53, y: 5.59, z: 181.181, name: "Nigeria" }, { x: 70.9, y: 1.75, z: 144.096, name: "Russia" }, { x: 83.8, y: 1.46, z:127.141, name: "Japan" }, { x: 82.5, y: 1.83, z:23.789, name: "Australia" }, { x: 71.3, y: 3.31, z: 93.778, name: "Egypt" }, { x: 81.6, y: 1.81, z:65.128, name: "UK" }, { x: 62.1, y: 4.26, z: 47.236, name: "Kenya" }, { x: 69.6, y: 4.51, z: 36.115, name: "Iraq" }, { x: 60.7, y: 4.65, z: 33.736, name: "Afganistan" }, { x: 52.7, y: 6, z: 27.859, name: "Angola" }, { x: 68.4, y: 2.94, z: 101.716, name: "Philippines" }, { x: 70, y: 2.17, z: 28.656, name: "Nepal" }, { x: 71.2, y: 1.51, z: 45.154, name: "Ukrain" }, { x: 83.4, y: 1.62, z: 46.447, name: "Spain" }, { x: 64.6, y: 4.28, z: 99.873, name: "Ethiopia" }, { x: 74.6, y: 1.5, z: 68.65, name: "Thailand" }, { x: 74.2, y: 1.88, z: 48.228, name: "Colombia" }, { x: 74.44, y: 2.34, z: 31.155, name: "Venezuela" }, { x: 57.4, y: 2.34, z: 55, name: "South Africa" }, { x: 59.2, y: 3.86, z: 15.77, name: "Zimbabwe" }, { x: 55.9, y: 4.63, z: 22.834, name: "Cameroon"} ] }] }); chart.render(); }
You can change the type of marker using markerType. You can further customize the marker using markerBorderThickness, markerBorderColor or markerColor.