我正在使用ChartJS库在PHP项目中绘制图表。在条形图中,我希望X轴上的标签成两行。
怎么了
我当前的图表就像
我希望我的图表如下
这是我的代码片段
<?php
$array_data = sql::rows("attendance_summary_report","DateVal between
'{$previous_date}' and '{$last_date}' order by DateVal asc");
//print_r($array_data);
$level_array=array();
$pre_array=array();
$abs_array=array();
if(is_array($array_data) && count($array_data)>0){
foreach($array_data as $ad){
if($ad['DayVal']==''){
$ad['DayVal']='No Day';
$ad['present']=0;
$ad['absent']=0;
}
array_push($level_array,
$ad['DayVal']."\n".date('d/m',strtotime($ad['DateVal'])));
array_push($pre_array,$ad['present']);
array_push($abs_array,$ad['absent']);
}
}
?>
<script>
$(function () {
var areaChartData = {
labels : <?php echo json_encode($level_array,true)?>,
datasets: [......]
}
var barChartCanvas = $('#barChart').get(0).getContext('2d')
var barChartData = jQuery.extend(true, {}, areaChartData)
var temp0 = areaChartData.datasets[0]
var temp1 = areaChartData.datasets[1]
barChartData.datasets[0] = temp1
barChartData.datasets[1] = temp0
var barChart = new Chart(barChartCanvas, {
type: 'bar',
data: barChartData,
options: barChartOptions
})
}
</script>
这可以通过将标签作为字符串数组传递来实现,其中每个元素代表一行,例如:
let labels = [
'A', // normal label.
['First line', 'Second line', '...'] // multi-line label.
];
一个工作示例:
new Chart(document.getElementById("chart"), {
type: 'bar',
data: {
labels: ['A', ['Water', 'Heating'], 'C'],
datasets: [{
data: [1, 1, 1]
}]
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<canvas id="chart"></canvas>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句