【问题标题】:Putting the data in the designated date in highcharts将指定日期的数据放入highcharts
【发布时间】:2019-01-20 15:50:49
【问题描述】:

我目前正在使用highcharts制作月图表,我想在指定日期输出数据,我该怎么办?我只是在学习如何使用动态数据使用 highcharts。

这是我的代码:

    <?php
$link=mysqli_connect("localhost","root","");
mysqli_select_db($link,"projects");

    /* Getting purchases table data */
    $sql = "SELECT SUM(total_cost) as count FROM purchases
            GROUP BY MONTH(`date`) ORDER BY `date`";
    $purchases = mysqli_query($link,$sql);
    $purchases = mysqli_fetch_all($purchases,MYSQLI_ASSOC);
    $purchases = json_encode(array_column($purchases, 'count'),JSON_NUMERIC_CHECK);


    /* Getting sales table data */
    $sql = "SELECT SUM(product_total) as count FROM confirm_order_product
            GROUP BY MONTH(`date`) ORDER BY `date`";
    $sales = mysqli_query($link,$sql);
    $sales = mysqli_fetch_all($sales,MYSQLI_ASSOC);
    $sales = json_encode(array_column($sales, 'count'),JSON_NUMERIC_CHECK);



?>
<script type="text/javascript">

/*series: [{
        name: 'Sales',
          data: data_sales,
         // pointStart: Date.UTC(2018, 1, 1),
         //  pointInterval: 24 * 3600 * 1000

      },{
         name: 'Purchases',
        data: data_purchases
     //   pointStart: Date.UTC(2018, 1, 1),
     //    pointInterval: 24 * 3600 * 1000
   }]*/

$(function () {


    var data_sales = <?php echo $sales; ?>;
    var data_purchases = <?php echo $purchases; ?>;


    $('#container').highcharts({
        chart: {
            type: 'line'
        },
        title: {
            text: 'Monthly Sales and Purchases'
        },
        xAxis: {
            //categories: ['January','February','March','April','May','June','July','August','Sepmtember','October','November','December']
            type: 'datetime',
           dateTimeLabelFormats: {


      month: '%b ',

           },
           title: {
               text: 'Date'
           }
        },

        series: [{
            name: 'Sales',
            data: data_sales

        }, {
            name: 'Purchases',
            data: data_purchases
        }]
    });
});

我有 9 月、11 月、12 月的数据,其余月份没有数据,当我运行代码时,它显示的是 Jan、Feb 和 Marc,而不是实际日期。

【问题讨论】:

  • 能分享一下data_sales吗?
  • @Core972 你这是什么意思?
  • 请编辑问题添加data_sales的内容。
  • 也许您的数据结构不正确,这就是 Highcharts 呈现的结果与您预期不同的原因。正如@Core972 提到的,请展示您的data_salesdata_purchases 内容或准备一个带有硬编码数据(jsfiddle、codepen)的简化在线示例。
  • 添加了代码。

标签: javascript php mysql highcharts


【解决方案1】:

如果您的数据不包含日期,您必须在图表选项中指定它。第一种方法是使用datetime轴并设置适当的pointStart和pointInterval:

plotOptions: {
    series: {
      pointStart: Date.UTC(2018, 8, 1),
      pointInterval: 30 * 24 * 3600 * 1000,
    }
}

演示: https://jsfiddle.net/BlackLabel/o4cq132m/

第二种方法是使用这样的类别:

xAxis: {
    type: 'category',
    categories: ['Sepmtember','October','November','December'],
    title: {
      text: 'Date'
    }
}

演示: https://jsfiddle.net/BlackLabel/h9ykq7mf/3/



当您的数据包含日期时,您可以这样提供:

  xAxis: {
    type: 'datetime'
  },
  series: [{
    data: [
      [1535752800000, 122], // [timestamp in milliseconds, value]
      [1538344800000, 131],
      [1541026800000, 111],
      [1543618800000, 120]
    ]
  }]

演示:
https://jsfiddle.net/BlackLabel/zhynkgoa/

API 参考:
https://api.highcharts.com/highcharts/series.line.data

【讨论】:

猜你喜欢
  • 2021-12-26
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 2017-07-17
  • 2016-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多