jQuery Flot line chart with month,year in x-axis

后端 未结 2 760
广开言路
广开言路 2021-01-07 00:16

I\'m trying to generate a graph with month,year in x-axis. Please check below for ex:

\"enter

相关标签:
2条回答
  • 2021-01-07 00:34

    Here's how I'd do it:

    // your JSON
    obj = {"total":[[2013,4,0],[2013,5,0],[2013,6,0],[2013,7,0],[2013,8,0],[2013,9,0],[2013,10,475],[2013,11,0],[2013,12,0],[2014,1,367],[2014,2,0],[2014,3,0]],"critical":[[2013,4,0],[2013,5,0],[2013,6,0],[2013,7,0],[2013,8,0],[2013,9,0],[2013,10,0],[2013,11,0],[2013,12,0],[2014,1,1],[2014,2,0],[2014,3,0]],"high":[[2013,4,0],[2013,5,0],[2013,6,0],[2013,7,0],[2013,8,0],[2013,9,0],[2013,10,20],[2013,11,0],[2013,12,0],[2014,1,20],[2014,2,0],[2014,3,0]],"medium":[[2013,4,0],[2013,5,0],[2013,6,0],[2013,7,0],[2013,8,0],[2013,9,0],[2013,10,24],[2013,11,0],[2013,12,0],[2014,1,135],[2014,2,0],[2014,3,0]],"low":[[2013,4,0],[2013,5,0],[2013,6,0],[2013,7,0],[2013,8,0],[2013,9,0],[2013,10,42],[2013,11,0],[2013,12,0],[2014,1,26],[2014,2,0],[2014,3,0]]};
    
    // reformat into the format flot likes
    seriesData = [];    
    for (var prop in obj) {
        // push in the series, the "property" is the label
        // use $.map to produce an array of [date, y-value]
        // the new Date(i[0],i[1]-1).getTime(), 
        // will give you the epoch time for the first day of that month/year
        seriesData.push({label: prop, data:$.map(obj[prop], function(i,j){
             return [[new Date(i[0],i[1]-1).getTime(), i[2]]];
        })});    
    }
    
    // plot it!
    $.plot("#placeholder", seriesData, {
        xaxis: { mode: "time", timeformat: "%b %Y" }
    });
    

    Fiddle here.

    Edit: It was changed j by i[2] in order to display the data correctly plotted.

    0 讨论(0)
  • 2021-01-07 00:51

    In the options:

    xaxis: {mode: "time", timeformat: "%b %m"}
    

    Using the time plugin.

    The data has to be converted to timestamps as explained in the link. As you have 0 in the day, maybe something like:

    tstamp = new Date(dat[0]*1000*3600*24*30*12+dat[1]*1000*3600*24*30)
    
    0 讨论(0)
提交回复
热议问题