繁体   English   中英

canvas.js显示为空白,未显示数据

[英]canvasjs showing blank, data not shown

我正在使用Canvasjs创建烛台图。 这些值来自PHP,我使用JSON编码转换为javascript数组。 我以与示例相同的格式重新创建了javascript数组,这是

 dataPoints=[{x: new Date(2012,01,01),y:[5198, 5629, 5159, 5385]}]

但是画布是空白的吗? 这是我的代码:

<?php


$chart_array[] = array("x"=>"2012-01-01","y"=>array("5198", "5629", "5159", "5385"));
$chart_array[] = array("x"=>"2012-01-02","y"=>array("5366", "5499", "5135", "5295"));

    $chart_array = json_encode($chart_array);

?>
    <script type="text/javascript">
        window.onload = function () {


            var resultArray = <?php echo $chart_array; ?>;

            var new_array = [];
            jQuery.each(resultArray, function(index, item) {

                new_array.push({ x: new Date(item.x), y: item.y });

            });

console.log(new_array);
            var chart = new CanvasJS.Chart("chartContainer", {
                title: {
                    text: "Basic Candle Stick Chart"
                },
                zoomEnabled: true,
                axisY: {
                    includeZero: false,
                    title: "Prices",
                    prefix: "$ "
                },
                axisX: {
                    interval: 2,
                    intervalType: "month",
                    valueFormatString: "MMM-YY",
                },
                data: [
                {
                    type: "candlestick",
                    dataPoints: new_array
                }
                ]
            });
            chart.render();
        }
    </script>

console.log显示该数组存在。 为什么显示空白画布? 我该如何解决?

您代码中的Y值似乎是字符串,应该是数字。 即使将其存储为字符串,将其解析为数字,然后再将其传递给chart-options也可以正常工作。

这是工作代码:

<?php

$chart_array[] = array("x"=>"2012-01-01","y"=>array(5198, 5629, 5159, 5385));
$chart_array[] = array("x"=>"2012-01-02","y"=>array(5366, 5499, 5135, 5295));

$chart_array = json_encode($chart_array);
?>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>

<script type="text/javascript">
    window.onload = function () {
        var resultArray = <?php echo $chart_array; ?>;

        var new_array = [];
        jQuery.each(resultArray, function(index, item) {
            new_array.push({ x: new Date(item.x), y: item.y });
        });

        var chart = new CanvasJS.Chart("chartContainer", {
            title: {
                text: "Basic Candle Stick Chart"
            },
            zoomEnabled: true,
            axisY: {
                includeZero: false,
                title: "Prices",
                prefix: "$ "
            },
            axisX: {
                interval: 2,
                intervalType: "month",
                valueFormatString: "MMM-YY",
            },
            data: [
            {
                type: "candlestick",
                dataPoints: new_array
            }
            ]
        });
        chart.render();
    }
</script>

<div id="chartContainer" style="height: 300px; width: 100%;"></div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM