[英]Print x values on axis of a graph
有人可以幫我解決這個問題嗎? 現在它在x軸上打印每個X值。 是否有可能使其每隔5個軸打印一個循環,而另一個循環打印值“”?
像“0”,“”,“”,“”,“”,“5”,“”......
var ctx = document.getElementById('lux').getContext('2d'); var lux = new Chart(ctx, { type: 'line', data: { labels: [ <?php for ($x = 0; $x < (count($data) - 1); $x++) { echo $x . ' , '; } ?> ] } });
嘗試這個
<?php
for ($x = 0; $x < (count($data) - 1); $x++) {
if($x % 5 == 0){
echo $x; //5th element
}else{
echo "''"; //prints empty for other than 5th element
}
echo ', '; //prints ',' for every element
}
?>
mod運算符( %
)是確定你是否每個第五個元素的好方法。 我通常會盡量避免在for
循環中回顯東西,特別是在輸出到Javascript時。 我可能會在兩個塊中處理它:准備數據,然后使用json_encode
回json_encode
所需的值:
你會注意到這里使用的是array_map
而不是一個循環,只是為了讓事情更容易推理並提供一個變量來引用。
<?php
$arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];
$result = array_map(function ($x, $index) {
return $index % 5 === 0 ? $x : '';
}, $arr, array_keys($arr));
?>
var ctx = document.getElementById('lux').getContext('2d');
var lux = new Chart(ctx, {
type: 'line',
data: {
labels: <?php echo json_encode($result) ?>,
// Outputs: ["a","","","","","f","","","",""]
}
}
你可以在這里運行這個例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.