Сделал код
https://code.re/82dkB6nr, как бы его допилить, чтоб на стороне скрипта data: [ массив был в цикле. исходники все тут
https://canvasjs.com/php-charts/stacked-column-100...
Вот сам код
<?php
$array=array('Завод №1' =>array('Пластиковая труба ф10'=>1, 'Пластиковая труба ф20'=>2, 'Пластиковая труба ф30'=>3), 'Завод №2' =>array('Пластиковая труба ф10'=>3, 'Пластиковая труба ф20'=>2, 'Пластиковая труба ф30'=>2), 'Завод №3' =>array('Пластиковая труба ф10'=>2, 'Пластиковая труба ф20'=>4, 'Пластиковая труба ф30'=>3), 'Завод №4' =>array('Пластиковая труба ф10'=>3, 'Пластиковая труба ф20'=>2, 'Пластиковая труба ф30'=>5), 'Завод №5' =>array('Пластиковая труба ф10'=>4, 'Пластиковая труба ф20'=>4, 'Пластиковая труба ф30'=>1), 'Завод №6' =>array('Пластиковая труба ф10'=>4, 'Пластиковая труба ф20'=>4, 'Пластиковая труба ф30'=>4), 'Завод №7' =>array('Пластиковая труба ф10'=>4, 'Пластиковая труба ф20'=>5, 'Пластиковая труба ф30'=>4), 'Завод №8' =>array('Пластиковая труба ф10'=>6, 'Пластиковая труба ф20'=>2, 'Пластиковая труба ф30'=>7), 'Завод №9' =>array('Пластиковая труба ф10'=>1, 'Пластиковая труба ф20'=>5, 'Пластиковая труба ф30'=>3));
foreach ($array["Завод №1"] as $key => $value1) {
foreach ($array as $key0 => $value) {
$mass=array("label"=> $key0, "y"=>$array[$key0][$key]);
$dataPoints1[] = array($mass);
}
}
$chess=count($array["Завод №1"]);
$chery=count($dataPoints1);
$delenie=$chery/$chess;
$ramb=array_chunk($dataPoints1,$delenie);
for($i = 0; $i <= $chess-1; $i++) {
${'result'.$i}=array_merge($ramb[$i][0],$ramb[$i][1],$ramb[$i][2],$ramb[$i][3],$ramb[$i][4],$ramb[$i][5],$ramb[$i][6],$ramb[$i][7],$ramb[$i][8]);
}
?>
<!DOCTYPE HTML>
<html>
<head>
<script>
window.onload = function () {
var chart = new CanvasJS.Chart("chartContainer", {
title: {
text: "Spending of Money Based on Household Composition"
},
theme: "light2",
animationEnabled: true,
toolTip:{
shared: true,
reversed: true
},
axisY: {
suffix: "шт."
},
data: [
{
type: "stackedColumn",
name: "Пластиковая труба ф10",
showInLegend: true,
yValueFormatString: "$#,##0 K",
dataPoints: <?php echo json_encode($result0); ?>
},{
type: "stackedColumn",
name: "Пластиковая труба ф20",
showInLegend: true,
yValueFormatString: "$#,##0 K",
dataPoints: <?php echo json_encode($result1); ?>
},{
type: "stackedColumn",
name: "Пластиковая труба ф30",
showInLegend: true,
yValueFormatString: "$#,##0 K",
dataPoints: <?php echo json_encode($result2); ?>
}
]
});
chart.render();
}
</script>
</head>
<body>
<div id="chartContainer" style="height: 370px; width: 100%;"></div>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
</body>
</html>