簡體   English   中英

在圖表的軸上打印x值

[英]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_encodejson_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM