Bubble Charts are very much similar to Scatter Charts except that size of bubble represents another parameter. Out of the three parameters required (x, y, z), x & y determine the bubble's position on X & Y Axis whereas z determines its size. Given example shows simple PHP Bubble Chart along with source code that you can try running locally.
<?php
$dataPoints = array(
array("name" => "Brand1", "x" => 2.5, "y" => 40, "z" => 200),
array("name" => "Brand2", "x" => 2, "y" => 12, "z" => 250),
array("name" => "Brand3", "x" => 13.5, "y" => 10, "z" => 124),
array("name" => "Brand4", "x" => 16, "y" => 28, "z" => 112),
array("name" => "Brand5", "x" => 1, "y" => 32, "z" => 90),
array("name" => "Brand6", "x" => 4.6, "y" => 26, "z" => 68),
array("name" => "Brand7", "x" => 7.8, "y" => 19, "z" => 321),
array("name" => "Brand8", "x" => 6, "y" => 15, "z" => 111),
array("name" => "Brand9", "x" => 9, "y" => 12, "z" => 45),
array("name" => "Brand10", "x" => 8.4, "y" => 16, "z" => 68),
array("name" => "Brand11", "x" => 7.5, "y" => 22, "z" => 72),
array("name" => "Brand12", "x" => 8, "y" => 28, "z" => 180),
array("name" => "Brand13", "x" => 8.5, "y" => 12, "z" => 123),
array("name" => "Brand14", "x" => 9, "y" => 3, "z" => 23),
array("name" => "Brand15", "x" => 9.5, "y" => 42, "z" => 90),
array("name" => "Brand16", "x" => 10, "y" => 18, "z" => 88),
array("name" => "Brand17", "x" => 10.5, "y" => 12, "z" => 174),
array("name" => "Brand18", "x" => 11, "y" => 6, "z" => 235),
array("name" => "Brand19", "x" => 11.5, "y" => 38, "z" => 120),
array("name" => "Brand20", "x" => 12, "y" => 40, "z" => 74),
array("name" => "Brand21", "x" => 12.5, "y" => 7, "z" => 190),
array("name" => "Brand22", "x" => 13, "y" => 42, "z" => 154),
array("name" => "Brand23", "x" => 13.5, "y" => 43, "z" => 134),
array("name" => "Brand24", "x" => 14, "y" => 7, "z" => 239),
array("name" => "Brand25", "x" => 14.5, "y" => 46, "z" => 295),
array("name" => "Brand26", "x" => 15, "y" => 9, "z" => 132),
array("name" => "Brand27", "x" => 15.5, "y" => 48, "z" => 145),
array("name" => "Brand28", "x" => 16.0, "y" => 34, "z" => 168),
array("name" => "Brand29", "x" => 15.5, "y" => 16, "z" => 145),
array("name" => "Brand30", "x" => 18, "y" => 50, "z" => 168)
);
?>
<!DOCTYPE HTML>
<html>
<head>
<script>
window.onload = function () {
var chart = new CanvasJS.Chart("chartContainer", {
title: {
text: "Brand Growth vs Market Shares and Sales"
},
axisX: {
title: "Growth",
suffix: "%"
},
axisY: {
title: "Market Share",
suffix: "%"
},
data: [{
type: "bubble",
toolTipContent: "<b>{name}</b><br><b>Growth: </b> {x}%<br><b>Market Share: </b>{y}%<br><b>Sales :</b> ${z}k ",
dataPoints: <?php echo json_encode($dataPoints, JSON_NUMERIC_CHECK); ?>
}]
});
chart.render();
}
</script>
</head>
<body>
<div id="chartContainer" style="height: 370px; width: 100%;"></div>
<script src="https://cdn.canvasjs.com/canvasjs.min.js"></script>
</body>
</html>
You can change the color of marker and type of marker using markerColor and markerType respectively. Some other commonly used customizations include markerBorderThickness, markerBorderColor, etc.