簡體   English   中英

jqplot 每小時事件數

[英]jqplot number of events per hour

我有一個從中獲取的數組

<div style='hidden' id=dataHours data-hours='{"08":3,"10":3,"11":1,"12":1,"14":2,"16":2,"18":1}'>

它被轉換為 json 陣列。

我想使用 jqplot 創建一個矩陣,其中 x 軸為小時,y 軸為事件數。

我目前嘗試這段代碼:

        var json_data = $('#dataHours').data('hours');
    var dateHoursArray = $.map(json_data, function(value, index) {
                return [[index,value]];
            });

    
    console.log(dateHoursArray);
    $.jqplot('maindiv', dateHoursArray, {
        legend: {
            show:true,
            location : 'ne'
        },
        title: 'Tickets created per hour',
        animate: true,
        animateReplot: true,
        axes: {
            xaxis: {
                label:'Hours',
                autoscale: true,
                min:0,
                max:23,
                rendererOptions: {
                    tickRenderer:$.jqplot.CanvasAxisTickRenderer
                },
                tickOptions: {
                    formatString:'%.0f'
                }
            },
            yaxis: {
                label:'Tickets',
                autoscale: true
            }
        },
        highlighter: {
            sizeAdjust: 7.5
        },
        cursor: {
            show: false
        },
        grid: {
            gridLineColor: '#cccccc',
            background: '#fff',
            borderColor: '#000',
            borderWidth: 2.0,
            shadow: false,
        }
    });

但它並沒有像我期望的那樣工作。

任何人?

邏輯。

創建了一個 24 小時的數組並遍歷數組以增加匹配時間的計數器:

    /*
Calculate max tickets per hour on 24 hours using tickets within specific period
*/
$date_sums = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; // 24 hours of 0
if(!empty($ticket_array)) {
    foreach ($ticket_array AS $ticket) {
        $hour = date("G", strtotime($ticket["ticket_created_date"]));
        if (!empty($ticket["ticket_created_date"])) {
            $date_sums[$hour] += 1;
        } // end if
    } // end foreach
    foreach ($date_sums AS $sum => $value) {
        $dates_sum[] = $value;
    }
} // end if

然后對 base64_encoded json_encoded $dates_sum 數組進行 Javascript 處理:

        var json_data = $('#dataHours').data('hours');
    var json_data = JSON.parse(atob(json_data));  //base64 decode and make into javascript object
    var dateHoursArray = [Array.from(json_data)];       

在 Array.from 的最后一行花了我一些試驗和錯誤;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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